Autoboksing (uforanderlige) - 1

"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:"

Eksempel
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
int x = 3;
Integer y = x + 1;
int x = 3;
Integer y = Integer.valueOf(x + 1);
int z = y;
int z = y.intValue();
Boolean b = Boolean.FALSE;
boolean a = b;
Boolean b = Boolean.FALSE;
boolean a = b.booleanValue();
Integer x = null;
int y = x;
Integer x = null; int y = x.intValue(); //Throws an exception

"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."