"Un alt subiect tare."
"Surprizele continuă să vină! Este ziua mea?"
"Astăzi, vă voi spune despre generice. Genericurile sunt tipuri care au un parametru. În Java, clasele container vă permit să indicați tipul obiectelor lor interioare."
„Când declarăm o variabilă generică, indicăm două tipuri în loc de unul: tipul de variabilă și tipul de date pe care le stochează.”
"ArrayList este un bun exemplu. Când creăm un nou obiect ArrayList, este convenabil să indicăm tipul valorilor care vor fi stocate în această listă."
Cod | Explicaţie |
---|---|
|
Creați o variabilă ArrayList numită list . Atribuiți-i un obiect ArrayList. Această listă poate stoca numai obiecte String . |
|
Creați o variabilă ArrayList numită list . Atribuiți-i un obiect ArrayList. Această listă poate stoca orice valoare . |
|
Creați o variabilă ArrayList numită list . Atribuiți-i un obiect ArrayList. Această listă poate stoca doar Integer și int valori. |
„Sună super interesant. În special partea despre stocarea valorilor de orice tip .”
„Se pare doar că acesta este un lucru bun. În realitate, dacă punem șiruri într-o ArrayList într-o metodă și apoi ne așteptăm să conțină numere într-o altă metodă, programul se va prăbuși (se va termina cu o eroare).”
"Înțeleg."
„Deocamdată, nu ne vom crea propriile clase cu parametri de tip. Îi vom folosi doar pe cei existenți.”
„Orice clasă poate fi un parametru de tip, chiar și una pe care o scriu eu?”
"Da. Orice tip, cu excepția tipurilor primitive. Toți parametrii de tip trebuie să moștenească din clasa Object."
„ Vrei să spui că nu pot scrie ArrayList<int>? ”
„Într-adevăr, nu poți. Dar dezvoltatorii Java au scris clase wrapper pentru fiecare dintre tipurile primitive. Aceste clase moștenesc Object . Așa arată:”
Tipul primitiv | Clasă | Listă |
---|---|---|
int | Întreg | ArrayList< Integer > |
dubla | Dubla | ArrayList< Double > |
boolean | boolean | ArrayList< Boolean > |
char | Caracter | ArrayList< Character > |
octet | octet | ArrayList< Byte > |
„Puteți atribui cu ușurință clase primitive și analogii lor (clasele wrapper) unul altuia:”
Exemple |
---|
|
|
|
|
|
"Genial. Cred că voi încerca să folosesc ArrayList mai des."