"Ănnu ett coolt Ă€mne."
"Ăverraskningarna kommer bara! Ăr det min födelsedag?"
"Idag ska jag berÀtta om generika. Generika Àr typer som har en parameter. I Java lÄter containerklasser dig ange typen av deras inre objekt."
"NÀr vi deklarerar en generisk variabel anger vi tvÄ typer istÀllet för en: variabeltypen och typen av data som den lagrar."
"ArrayList Àr ett bra exempel. NÀr vi skapar ett nytt ArrayList-objekt Àr det bekvÀmt att ange vilken typ av vÀrden som kommer att lagras i den hÀr listan."
Koda | Förklaring |
---|---|
|
Skapa en ArrayList-variabel som heter list . Tilldela ett ArrayList-objekt till det. Den hÀr listan kan bara lagra strÀngobjekt . |
|
Skapa en ArrayList-variabel som heter list . Tilldela ett ArrayList-objekt till det. Denna lista kan lagra alla vÀrden . |
|
Skapa en ArrayList-variabel som heter list . Tilldela ett ArrayList-objekt till det. Denna lista kan bara lagra Integer och int vÀrden. |
"LÄter superintressant. Speciellt delen om att lagra vÀrden av alla slag ."
"Det verkar bara som att det Àr bra. I verkligheten, om vi lÀgger in strÀngar i en ArrayList i en metod och sedan förvÀntar oss att den ska innehÄlla siffror i en annan metod, kommer programmet att krascha (avslutas med ett fel)."
"Jag förstÄr."
"För nÀrvarande kommer vi inte att skapa vÄra egna klasser med typparametrar. Vi kommer bara att anvÀnda de befintliga."
"Kan vilken klass som helst vara en typparameter, Àven en som jag skriver?"
"Ja. Alla typer utom primitiva typer. Alla typparametrar mÄste Àrva frÄn klassen Object."
" Du menar att jag inte kan skriva ArrayList<int>? "
"Det kan du faktiskt inte. Men Java-utvecklare har skrivit omslagsklasser för var och en av de primitiva typerna. Dessa klasser Àrver Object . SÄ hÀr ser det ut:"
Primitiv typ | Klass | Lista |
---|---|---|
int | Heltal | ArrayList< Heltal > |
dubbel | Dubbel | ArrayList< Dubbel > |
booleskt | Boolean | ArrayList< Boolean > |
röding | KaraktÀr | ArrayList< Tecken > |
byte | Byte | ArrayList< Byte > |
"Du kan enkelt tilldela primitiva klasser och deras analoger (omslagsklasser) till varandra:"
Exempel |
---|
|
|
|
|
|
"Bra. Jag tror att jag kommer att försöka anvÀnda ArrayList oftare."
GO TO FULL VERSION