"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