– Egy újabb klassz téma.
"A meglepetések folyamatosan jönnek! Ez a születésnapom?"
"Ma az általánosokról fogok beszélni. Az általános típusok olyan típusok, amelyeknek van paramétere. A Java-ban a konténerosztályok lehetővé teszik a belső objektumaik típusának megadását."
"Amikor egy általános változót deklarálunk, egy helyett két típust adunk meg: a változó típusát és az általa tárolt adatok típusát."
"Az ArrayList jó példa. Amikor új ArrayList objektumot hozunk létre, célszerű megadni a listán belül tárolt értékek típusát."
Kód | Magyarázat |
---|---|
|
Hozzon létre egy ArrayList változót list . Rendeljen hozzá egy ArrayList objektumot. Ez a lista csak String objektumokat tud tárolni . |
|
Hozzon létre egy ArrayList változót list . Rendeljen hozzá egy ArrayList objektumot. Ez a lista bármilyen értéket tárolhat . |
|
Hozzon létre egy ArrayList változót list . Rendeljen hozzá egy ArrayList objektumot. Ez a lista csak és értékeket tárolhat . Integer int |
"Nagyon érdekesen hangzik. Főleg az a rész, amely bármilyen típusú értékek tárolásáról szól ."
"Csak úgy tűnik, hogy ez jó dolog. A valóságban, ha az egyik metódusban karakterláncokat teszünk egy ArrayList-be, majd azt várjuk, hogy egy másik metódusban számokat tartalmazzon, a program összeomlik (hibával leáll)."
"Látom."
"Egyelőre nem hozunk létre saját osztályokat típusparaméterekkel, csak a meglévőket használjuk."
"Bármelyik osztály lehet típusparaméter, még az is, amit én írok?"
"Igen. Bármilyen típus, kivéve a primitív típusokat. Minden típusparaméternek az Object osztályból kell örökölnie."
" Úgy érted, hogy nem tudok ArrayList<int>et írni? "
"Valóban nem lehet. De a Java fejlesztők minden primitív típushoz írtak burkoló osztályokat. Ezek az osztályok az Object -et öröklik . Így néz ki:"
Primitív típus | Osztály | Lista |
---|---|---|
int | Egész szám | ArrayList< Integer > |
kettős | Kettős | ArrayList< Double > |
logikai érték | Boolean | ArrayList< logikai > |
char | karakter | ArrayList< Karakter > |
byte | Byte | ArrayList< Byte > |
"Könnyen hozzárendelheti egymáshoz a primitív osztályokat és analógjaikat (wrapper osztályokat):"
Példák |
---|
|
|
|
|
|
"Remek. Azt hiszem, megpróbálom gyakrabban használni az ArrayList-et."