Junior — Middle
Co uniemożliwia używanie podstawowych typów danych w parametrach generycznych?
sobes.tech AI
Odpowiedź od AI
W Javie generics są implementowane za pomocą wymazywania typów (type erasure), co oznacza, że informacje o typach parametrów generycznych nie są dostępne w czasie wykonywania.
Z tego powodu nie można używać typów prymitywnych (int, boolean itp.) jako parametrów generycznych, ponieważ nie są one obiektami i nie mogą być reprezentowane jako klasa.
Na przykład, nie można napisać:
List<int> numbers; // Błąd
Zamiast tego, należy użyć opakowań:
List<Integer> numbers; // Poprawnie
Jest to związane z tym, że generics działają tylko z typami obiektowymi, a prymitywy nie są obiektami.