Sobes.tech
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.