Sobes.tech
Junior — Middle

Ce împiedică utilizarea tipurilor de date de bază în parametrii generici?

sobes.tech AI

Răspuns de la AI

În Java, genericele sunt implementate folosind ștergerea tipurilor (type erasure), ceea ce înseamnă că informațiile despre tipurile parametrilor generici nu sunt disponibile în timpul execuției.

Din această cauză, nu se pot folosi tipuri primitive (int, boolean etc.) ca parametri generici, deoarece acestea nu sunt obiecte și nu pot fi reprezentate ca o clasă.

De exemplu, nu se poate scrie:

List<int> numbers; // Eroare

În schimb, trebuie folosite învelitoare:

List<Integer> numbers; // Corect

Acest lucru se datorează faptului că genericele funcționează doar cu tipuri de obiecte, iar primitivele nu sunt obiecte.