Autoboksning (uforanderlige) - 1

"Hej, Amigo!"

"I dag vil jeg fortælle om autoboxing . AutoBoxing betyder automatisk at putte noget i en boks."

"Du kan huske, at Java har typer, der arver Object-klassen, såvel som primitive typer. Men det viser sig, at praktiske ting som samlinger og generiske produkter kun virker med typer, der arver Object."

"Så blev beslutningen taget om at lave en ikke-primitiv modstykke af enhver primitiv type."

Primitiv type Ikke-primitiv modstykke
byte Byte
kort Kort
int Heltal
lang Lang
flyde Flyde
dobbelt Dobbelt
boolesk Boolean
char Karakter
ugyldig Ugyldig

"Men det er super ubelejligt at konvertere mellem disse typer hele tiden:"

int x = 3;
Integer y = new Integer(x + 1);
int z = y.intValue();

"Især når du arbejder 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 grunden til, at Javas skabere opfandt "autoboxing" af primitive typer deres og "unboxing" til deres ikke-primitive modstykker."

"Sådan fungerer det:

Hvad du ser Hvad sker der virkelig
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 tildele int- og Integer-typer til hinanden, og compileren tager sig af alt andet."

"Det er meget praktisk."

"Jep. Men der er nuancer, som jeg vil tale om senere."