Autoboxing (unveränderlich) – 1

„Hallo, Amigo!“

„Heute erzähle ich etwas über Autoboxing . AutoBoxing bedeutet, etwas automatisch in eine Box zu legen.“

„Sie werden sich erinnern, dass es in Java sowohl Typen gibt, die die Object-Klasse erben, als auch primitive Typen. Aber es stellt sich heraus, dass praktische Dinge wie Sammlungen und Generika nur mit Typen funktionieren, die Object erben.“

„Dann wurde die Entscheidung getroffen, von jedem primitiven Typ ein nicht-primitives Gegenstück zu erstellen.“

Primitiver Typ Nicht-primitives Gegenstück
Byte Byte
kurz Kurz
int Ganze Zahl
lang Lang
schweben Schweben
doppelt Doppelt
Boolescher Wert Boolescher Wert
verkohlen Charakter
Leere Leere

„Aber es ist super umständlich, ständig zwischen diesen Typen zu konvertieren:“

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

„Vor allem bei der direkten Arbeit mit Sammlungen:“

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

„Deshalb haben die Entwickler von Java das „Autoboxing“ ihrer primitiven Typen und das „Unboxing“ ihrer nicht-primitiven Gegenstücke erfunden.“

"So funktioniert das:

Was Sie sehen Was wirklich passiert
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

„Es ist alles ganz einfach. Sie können einander die Typen int und Integer zuweisen, und der Compiler kümmert sich um alles andere.“

„Das ist sehr praktisch.“

„Ja. Aber es gibt Nuancen, über die ich später sprechen werde.“