Sobes.tech
Junior — Middle

Kas trukdo naudoti bazinius duomenų tipus generiniuose parametruose?

sobes.tech AI

Atsakymas iš AI

Java generikai įgyvendinami naudojant tipų ištrynimą (type erasure), tai reiškia, kad informacija apie generinių parametrų tipus nėra prieinama vykdymo metu.

Dėl to, pirminiai tipai (int, boolean ir kt.) negali būti naudojami kaip generiniai parametrai, nes jie nėra objektai ir jų negalima atvaizduoti kaip klasės.

Pavyzdžiui, neteisinga rašyti:

List<int> numbers; // Klaida

Už tai, reikia naudoti apvalkinius tipus:

List<Integer> numbers; // Teisinga

Tai yra todėl, kad generikai veikia tik su objektų tipais, o pirminiai tipai nėra objektai.