Hallo!
Habe mich mit generischen Datentypen beschäftigt, dazu das Openbook „Java ist auch eine Insel“ von Galileo Computing benutzt. Dabei bin ich auf ein Beispiel gestoßen, was ich nicht ganz nachvollziehen kann oder im Buch ist ein Fehler. Wäre euch dankbar, wenn einer oder mehrere mir dabei Helfen würdet dieses Beispiel zu verstehen. Wir haben folgenden generischen Datentyp Box<T> mit der Objektvariable (Eigenschaft) val vom Typ T, worauf eine Getter- und eine Setter-Methode definiert sind:
Bei den ersten beiden ist der Aufruf der get- und set-Methode sowie die Standardausgabe (println()) kein Problem. Bei dem letzten bekomme ich eine NullPointerException, wenn ich getX() aus der Pointer-Klasse wie folgt aufrufe:
double x = pointBox.getValue().getX();
Für mich scheint es verständlich zu sein, da im gesamten Ablauf kein Point-Objekt inkarniert wurde, weshalb auch getValue() den Null-Pointer zurückgibt. Im Buch steht, das es funktionieren sollte, was ich nicht nachvollziehen kann. Kann mir da jemand helfen? Mein Denkfehler oder des Buchautors Fehler? Vielen Dank für eure Hilfe.
Grüße, Manuel
Habe mich mit generischen Datentypen beschäftigt, dazu das Openbook „Java ist auch eine Insel“ von Galileo Computing benutzt. Dabei bin ich auf ein Beispiel gestoßen, was ich nicht ganz nachvollziehen kann oder im Buch ist ein Fehler. Wäre euch dankbar, wenn einer oder mehrere mir dabei Helfen würdet dieses Beispiel zu verstehen. Wir haben folgenden generischen Datentyp Box<T> mit der Objektvariable (Eigenschaft) val vom Typ T, worauf eine Getter- und eine Setter-Methode definiert sind:
Code:
class Box<T> {
private T val;
void setValue( T val ) { this.val = val; }
T getValue() { return val; }
}
In der main()-Methode werden folgende drei Objekte inkarniert:
Box<String> stringBox = new Box<String>();
Box<Integer> intBox = new Box<Integer>();
Box<Point> pointBox = new Box<Point>();
Bei den ersten beiden ist der Aufruf der get- und set-Methode sowie die Standardausgabe (println()) kein Problem. Bei dem letzten bekomme ich eine NullPointerException, wenn ich getX() aus der Pointer-Klasse wie folgt aufrufe:
double x = pointBox.getValue().getX();
Für mich scheint es verständlich zu sein, da im gesamten Ablauf kein Point-Objekt inkarniert wurde, weshalb auch getValue() den Null-Pointer zurückgibt. Im Buch steht, das es funktionieren sollte, was ich nicht nachvollziehen kann. Kann mir da jemand helfen? Mein Denkfehler oder des Buchautors Fehler? Vielen Dank für eure Hilfe.
Grüße, Manuel