Sobes.tech
Junior — Middle

Mis takistab kasutada põhitüüpe generics-parameetrites?

sobes.tech AI

Vastus AI-lt

Java-s generics implementeeritakse tüübi kustutamise (type erasure) kaudu, mis tähendab, et teave generiliste parameetrite tüüpide kohta ei ole jooksvalt saadaval.

Seetõttu ei saa primitiivseid tüüpe (int, boolean jne) kasutada generiliste parameetritena, kuna need ei ole objektid ja neid ei saa esitada klassina.

Näiteks on vale kirjutada:

List<int> numbers; // Viga

Selle asemel tuleb kasutada pakendeid:

List<Integer> numbers; // Õige

See on tingitud sellest, et generics töötavad ainult objektitüüpidega, ning primitiivsed tüübid ei ole objektid.