Nullpointer exception engine alpha?
Beim ausführen meines Programms, bekomme ich eine nullPointer exception für eine Funktion bei der ein Bild um (0,2) durchgehend verschoben wird. Die Konsole sagt mir, dass das Bild Null sei aber nur für das eine Bild welches ich exakt gleich wie ein anderes Bild deklariert habe mit dem ich das gleiche mache, für dieses wird aber keine nullpointer exception angezeigt...
1 Antwort
Mit einer Deklaration machst du eine Variable dem Programm nur bekannt. Doch so lange du ihr noch keinen Wert zugewiesen hast, ist sie undefiniert.
Bild bild; // Deklaration
bild = new Bild("..."); // Definition
Instanz-/Klassenvariablen, die auf ein Objekt zeigen sollen, werden mit dem Wert null vorbelegt.
Wenn du nun versuchst, mit einer Variable zu operieren, die auf null zeigt, kann es zu einer NullPointerException kommen.
Verfolge den Werdegang deiner Variable. Relevant ist, wann sie ihren Wert ändert und welchen Wert sie dabei bekommt.
Ich denke, dass du noch nicht an der richtigen Stelle suchst. Auf Ebene dieser vier Codezeilen halte ich eine NullPointerException für ausgeschlossen. Der new-Operator ist in der Hinsicht eine sichere Bank.
Da du nicht mit der Bild-Klasse von Engine Alpha arbeitest, gehe ich von einer Eigenimplementation aus. Innerhalb des Konstruktors könnte vielleicht eine Exception geworfen werden oder innerhalb der verschieben-Methode. Was sagt denn der Stacktrace (der mit in der Fehlermeldung stehen sollte)?
Mein Problem ist eher, dass ich ja das exakt gleiche mit einem anderen Bild gemacht habe, mir aber keine nullpointer exception gesagt wird
hintergrund2 = new BILD(500,500,"Hintergrund2.png");
hintergrund3 = new BILD(500,-500,"Hintergrund3.png");
hintergrund2.verschieben(0,2);
hintergrund3.verschieben(0,2);
Und die Bilder werden auch angezeigt, das eine Bewegt sich bloss nicht