Autoboxing (onveranderlijk) - 1

"Hallo Amigo!"

"Vandaag vertel ik over autoboxen . AutoBoxen betekent automatisch iets in een doos stoppen."

"Je zult je herinneren dat Java typen heeft die de klasse Object erven, evenals primitieve typen. Maar het blijkt dat handige dingen als verzamelingen en generieke typen alleen werken met typen die Object erven."

"Toen werd besloten om van elk primitief type een niet-primitieve tegenhanger te maken."

Primitieve soort Niet-primitieve tegenhanger
byte Byte
kort Kort
int Geheel getal
lang Lang
vlot Vlot
dubbele Dubbele
booleaans Booleaans
char Karakter
leegte Leegte

"Maar het is super onhandig om de hele tijd tussen deze typen te converteren:"

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

"Vooral als je direct met collecties werkt:"

Voorbeeld
int[] numbers = new int[10];
ArrayList list = new ArrayList();
for (int i = 0; i < numbers.length; i++)
{
 list.add( new Integer(i));
}

"Daarom hebben de makers van Java 'autoboxing' van primitieve typen uitgevonden en 'unboxing' voor hun niet-primitieve tegenhangers."

"Dit is hoe het werkt:

Wat je ziet Wat gebeurt er echt
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

"Het is allemaal eenvoudig. Je kunt de typen int en Integer aan elkaar toewijzen, en de compiler zorgt voor al het andere."

"Dat is erg handig."

"Ja. Maar er zijn nuances waar ik het later over zal hebben."