Junior — Middle
Čo bráni používaniu základných dátových typov v parametroch generík?
sobes.tech AI
Odpoveď od AI
V Jave sú generiksy implementované pomocou vymazania typov (type erasure), čo znamená, že informácie o typoch generických parametrov nie sú dostupné počas behu.
Preto nie je možné použiť primitívne typy (int, boolean atď.) ako generické parametre, pretože nie sú objekty a nemôžu byť reprezentované ako triedy.
Napríklad je nesprávne napísať:
List<int> numbers; // Chyba
Namiesto toho je potrebné použiť obalové triedy:
List<Integer> numbers; // Správne
To je spôsobené tým, že generiksy fungujú iba s objektovými typmi, a primitívne typy nie sú objekty.