16 Wrapper-Klassen
Einige Funktionalitäten stehen in Java nur Objekten, nicht aber primitiven Werten offen. So können beispielsweise in eine ArrayList nur Objekte, jedoch keine primitiven Werte aufgenommen werden.
Um diese Einschränkung zu umgehen, kann ein primitiver Wert mit Hilfe einer Wrapper1-Klasse als Objekt „verpackt“ werden.
Beispiel
Der Quellcode einer Wrapper-Klasse, die einen int-Wert kapselt, könnte folgendermaßen aussehen:
private int value;
public Integer(int value) {
this.value = value;
}
public int intValue() {
return value;
}
//weitere Methoden...
}
int-Werts.Java stellt für jeden primitiven Datentyp eine entsprechende Wrapper-Klasse zu Verfügung.
Die Wrapper-Klasse Integer kapselt int-Werte. Außerdem stellt sie Methoden bereit, mit deren Hilfe ein String, der ausschließlich aus Ziffern besteht, in einen entsprechenden int-Wert konvertiert werden kann und umgekehrt aus einem int-Wert ein entsprechender String erzeugt werden kann.
public Integer(int value)Integer-Objekt kapselt den int-Wert value.
public int intValue()Integer-Objekt gekapselten int-Wert.
public static int parseInt(String s)String s in eine Zahl vom Typ int und gibt diesen zurück. Enthält s Zeichen, die nicht als Teil einer Zahl interpretiert werden können (z. B. Buchstaben), führt dies zu einem Fehler.
public static String toString(int i)int-Wert i in einen String und gibt diesen zurück.
Integer kapselt int-Werte.Beispiel
Quellcode-Ausschnitt
2
3
4
5
6
7
8
9
10
11
12
13
14
Integer integer;
int ganzzahl;
String text;
listeGanzzahlen.add( new Integer(10) );
integer = listeGanzzahlen.get(0);
ganzzahl = integer.intValue();
text = "12";
ganzzahl = Integer.parseInt(text);
text = Integer.toString(ganzzahl);
IntegerErläuterungen
| Zeile 6 |
Ein neues Integer-Objekt wird erzeugt, um den int-Wert 10 zu kapseln. Anschließend wird das Objekt der listeGanzzahlen hinzugefügt.
|
| Zeile 8 |
Ein Verweis auf das erste Integer-Objekt der listeGanzzahlen wird der Variablen integer zugewiesen.
|
| Zeile 9 |
Der im Objekt integer gekapselte int-Wert wird abgefragt und der Variablen ganzzahl zugewiesen.
|
| Zeile 12 |
Der String text besteht ausschließlich aus Ziffern. Diese werden ausgelesen und in einen entsprechenden int-Wert konvertiert. Dieser wird dann der Variablen ganzzahl zugewiesen.
|
Zeile 14 |
Der in der Variablen ganzzahl gespeicherte int-Wert wird in einen String konvertiert und der Variablen text zugewiesen.
|
Auch für die primitiven Datentypen double und char hält Java entsprechende Wrapper-Klassen bereit.
Double und Character kapseln entsprechende primitive Werte.