Autobox (megváltoztathatatlanok) – 1

– Szia Amigo!

"Ma az autoboxról fogok beszélni . Az AutoBox azt jelenti, hogy valamit automatikusan egy dobozba helyezünk."

"Emlékezhetsz rá, hogy a Java-nak vannak olyan típusai, amelyek öröklik az Object osztályt, valamint primitív típusai. De kiderült, hogy a kényelmes dolgok, mint a gyűjtemények és az általánosságok, csak az Object osztályt öröklő típusokkal működnek."

"Aztán az a döntés született, hogy minden primitív típusnak készítünk egy nem primitív megfelelőt."

Primitív típus Nem primitív megfelelője
byte Byte
rövid Rövid
int Egész szám
hosszú Hosszú
úszó Úszó
kettős Kettős
logikai érték Boolean
char karakter
üres Üres

"De rendkívül kényelmetlen ezek között a típusok között állandóan konvertálni:"

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

"Különösen, ha közvetlenül gyűjteményekkel dolgozik:"

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

„Ezért találták ki a Java alkotói a primitív típusok „autoboxolását”, és „kicsomagolják” nem primitív társaikhoz.”

"Íme, hogyan működik:

Amit látsz Mi történik valójában
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

"Minden egyszerű. Int és Integer típusokat rendelhetsz egymáshoz, a fordító pedig minden másról gondoskodik."

– Ez nagyon kényelmes.

– Igen. De vannak árnyalatok, amelyekről később beszélek.