"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:"
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 |
---|---|
|
|
|
|
|
|
|
|
"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."
GO TO FULL VERSION