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