Erläuterungen
Wrapper-Klassen oder Hüll-Klassen "umschließen" primitive Datentypen wie int oder double und machen sie zu "richtigen" Klassen mit vordefinierten Methoden. Wrapper-Klassen werden immer dann benötigt, wenn eine Java-Klasse wie zum Beispiel ArrayList nur mit Objekten arbeiten kann, nicht aber mit primitiven Datentypen. Um eine ArrayList von int-Zahlen anzulegen, müssen diese zuvor in Objekte der Wrapper-Klasse Integer umgewandelt werden.
Beispiel zur Demonstration

Quelltext zur Demonstration der Wrapper-Klasse Integer
In Zeile 17 wird in der for-Schleife bei jedem Schleifendurchgang ein Objekt wert der Klasse Integer erzeugt. Die Wertzuweisung erfolgt dann über die Methode valueOf() der Klasse Integer. Als Parameter wird die int-Zahl übergeben (in diesem Fall die Zählvariable i der for-Schleife), und valueOf(i) liefert dann ein Integer-Objekt wert mit dem Wert von i zurück.
Da es sich bei wert um ein Objekt handelt, kann es in Zeile 18 problemlos der ArrayList hinzugefügt werden.
In Zeile 27 sehen wir die Rückumwandlung. Würden wir einfach das Objekt wert mit System.out.println(wert) ausgeben, dann würde in der Konsole die in wert gespeicherte Speicheradresse angezeigt. Daher müssen wir das Integer-Objekt erst wieder in den primitiven Datentypen int zurück verwandeln.
Dies geschieht mit der Integer-Methode intValue(), die den int-Wert des Integer-Objektes zurück liefert und in der lokalen int-Variablen z speichert, die dann ausgegeben werden kann.
Weitere Wrapper-Klassen
- Byte
- Short
- Integer (hatten wir schon behandelt)
- Long
- Float
- Double
- Character
Veraltete Konstruktoren
Jede dieser Wrapper-Klassen besitzt einen Konstruktor, der aus einem String-Parameter den Wert des Objektes ermittelt:
Integer n = new Integer("1234"); Double pi = new Double("3.14");
Ein weiterer Konstruktor nimmt den Wert des primitiven Datentypen entgegen:
Integer n = new Integer(1234); Double pi = new Double(3.14);
Allerdings ist dieses Verfahren deprecated, also veraltet.
Aktuelle Verfahren der Wertzuweisung
In den neueren Java-Versionen gibt es einfachere Verfahren:
Integer n = 1234; Double. pi = 3.14;
Dieses sehr einfach aussehende Verfahren wird als Autoboxing bezeichnet. Alternativ und etwas umständlicher ist die Zuweisung mit der Wrapper-Methode valueOf():
Integer n = Integer.valueOf(1234); Double. pi = Double.valueOf(3.14);
Die veralteten Konstruktoren können noch weiter benutzt werden, es wird aber davon abgeraten. Hier noch ein kleines Argument dafür, die Konstruktoren nicht mehr zu verwenden:
Integer a = new Integer(13); Integer b = new Integer(13);
Auf diese Weise werden zwei verschiedene Integer-Objekte a und b mit dem gleichen Wert erzeugt. Vergleicht man a und b mit dem == - Operator, wird der Wahrheitswert false geliefert:
System.out.println(a == b); // ⟹ false
Wenn man dagegen die valueOf()-Methode verwendet:
Integer a = Integer.valueOf(13); Integer b = Integer.valueOf(13);
Dann liefert der == - Operator den Wert true. Beide Referenzen a und b zeigen auf den gleichen Speicherbereich (das gleiche Objekt im Speicher).
Quellen:
- Balzert: Objektorientiert Programmieren, 4. Auflage, Springer-Verlag Berlin 2025.