"Hei, Amigo!"
"I dag skal jeg fortelle om autoboksing . Autoboksing betyr å automatisk legge noe i en boks."
"Du vil huske at Java har typer som arver Object-klassen, så vel som primitive typer. Men det viser seg at praktiske ting som samlinger og generikk bare fungerer med typer som arver Object."
"Da ble beslutningen tatt om å lage et ikke-primitivt motstykke av hver primitiv type."
| Primitiv type | Ikke-primitiv motpart |
|---|---|
| byte | Byte |
| kort | Kort |
| int | Heltall |
| lang | Lang |
| flyte | Flyte |
| dobbelt | Dobbelt |
| boolsk | boolsk |
| røye | Karakter |
| tomrom | Tomrom |
"Men det er veldig upraktisk å konvertere mellom disse typene hele tiden:"
int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();
"Spesielt når du jobber direkte med samlinger:"
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
list.add( new Integer(i));
}
"Det er derfor Javas skapere oppfant «autoboxing» av primitive typer deres og «unboxing» til deres ikke-primitive motparter."
"Slik fungerer det:
| Det du ser | Hva skjer egentlig |
|---|---|
|
|
|
|
|
|
|
|
"Det hele er enkelt. Du kan tilordne int- og Integer-typer til hverandre, og kompilatoren tar seg av alt annet."
"Det er veldig praktisk."
"Japp. Men det er nyanser som jeg skal snakke om senere."
GO TO FULL VERSION