Sobes.tech
Junior — Middle

Какво пречи да се използват основните типове данни в параметрите на обобщенията?

sobes.tech AI

Отговор от AI

В Java generics се реализират чрез изтриване на типове (type erasure), което означава, че информацията за типовете на генеричните параметри не е налична по време на изпълнение.

Затова не може да се използват примитивни типове (int, boolean и т.н.) като генерични параметри, тъй като те не са обекти и не могат да бъдат представени като клас.

Например, неправилно е да се напише:

List<int> numbers; // Грешка

Вместо това трябва да се използват обвиващи класове:

List<Integer> numbers; // Правилно

Това се дължи на факта, че generics работят само с обектни типове, а примитивите не са обекти.