"Et annet kult tema."
"Overraskelsene bare fortsetter å komme! Er det bursdagen min?"
"I dag skal jeg fortelle deg om generika. Generiske er typer som har en parameter. I Java lar containerklasser deg angi typen av deres indre objekter."
"Når vi erklærer en generisk variabel, angir vi to typer i stedet for én: variabeltypen og typen data den lagrer."
"ArrayList er et godt eksempel. Når vi lager et nytt ArrayList-objekt, er det praktisk å indikere typen verdier som vil bli lagret i denne listen."
Kode | Forklaring |
---|---|
|
Lag en ArrayList-variabel kalt list . Tilordne et ArrayList-objekt til det. Denne listen kan bare lagre strengobjekter . |
|
Lag en ArrayList-variabel kalt list . Tilordne et ArrayList-objekt til det. Denne listen kan lagre alle verdier . |
|
Lag en ArrayList-variabel kalt list . Tilordne et ArrayList-objekt til det. Denne listen kan bare lagre Integer og int verdier. |
"Høres veldig interessant ut. Spesielt delen om lagring av verdier av enhver type ."
"Det virker bare som det er en god ting. I virkeligheten, hvis vi legger strenger inn i en ArrayList i en metode og deretter forventer at den skal inneholde tall i en annen metode, vil programmet krasje (avsluttes med en feil)."
"Jeg skjønner."
"Foreløpig vil vi ikke lage våre egne klasser med typeparametere. Vi bruker bare de eksisterende."
"Kan en hvilken som helst klasse være en typeparameter, også en som jeg skriver?"
"Ja. Enhver type bortsett fra primitive typer. Alle typeparametere må arve fra Object-klassen."
" Du mener jeg ikke kan skrive ArrayList<int>? "
"Det kan du faktisk ikke. Men Java-utviklere har skrevet wrapper-klasser for hver av de primitive typene. Disse klassene arver Object . Slik ser det ut:"
Primitiv type | Klasse | Liste |
---|---|---|
int | Heltall | ArrayList< Heltall > |
dobbelt | Dobbelt | ArrayList< Double > |
boolsk | boolsk | ArrayList< Boolsk > |
røye | Karakter | ArrayList< Tegn > |
byte | Byte | ArrayList< Byte > |
"Du kan enkelt tilordne primitive klasser og deres analoger (innpakningsklasser) til hverandre:"
Eksempler |
---|
|
|
|
|
|
"Flott. Jeg tror jeg skal prøve å bruke ArrayList oftere."