Junior — Middle
Какво пречи да се използват основните типове данни в параметрите на обобщенията?
sobes.tech AI
Отговор от AI
В Java generics се реализират чрез изтриване на типове (type erasure), което означава, че информацията за типовете на генеричните параметри не е налична по време на изпълнение.
Затова не може да се използват примитивни типове (int, boolean и т.н.) като генерични параметри, тъй като те не са обекти и не могат да бъдат представени като клас.
Например, неправилно е да се напише:
List<int> numbers; // Грешка
Вместо това трябва да се използват обвиващи класове:
List<Integer> numbers; // Правилно
Това се дължи на факта, че generics работят само с обектни типове, а примитивите не са обекти.