V1tzl1
Lt. Junior Grade
- Registriert
- Sep. 2004
- Beiträge
- 384
Hallo.
Ich schreibe gerade mit Java vor mich hin, um es ein bisschen zu lernen. Dabei bin ich mal wieder auf ein Problem gestoßen, das ich diesmal allerdings nicht so einfach erklären kann.
Zu meinem Programm
Ich habe ein "Hauptfaden" und einen Thread, der nebenher läuft. Beide Threads haben eine Referenz auf ein von mir erstelltes Objekt. Will ich nun eine bestimmte Methode dieses Objekts aufrufen, tut er dies auch, jeoch wird in dieser Methode dann eine weitere methode aufgerufen, welche dann einen Fehler verursacht.
Diese aufgerufene Methode sieht so aus
Das fällt wird ganz normal in der Konsole ausgegeben, beim draw wird allerdings ein Fehler ausgegeben, aber nur wenn ich fall vom nebenthread her aufrufe.
Der Fehler ist ein NullPointerException. Laut Doku wird diese Exception geworfen, wenn man auf ein Objekt zugreifen will, das gar kein Objekt ist. Ich sehe in der Methode aber nur ein Objekt verwendet und das ist das Color Objekt, das sich ja nicht ändert, egal von wo ich es aufrufe.
Ich hoffe ihr konntet mein Problem verstehen. Wenn ihr noch mehr Code, oder Angaben braucht, sagt es einfach. Schonmal danke für eure Hilfe
Ich schreibe gerade mit Java vor mich hin, um es ein bisschen zu lernen. Dabei bin ich mal wieder auf ein Problem gestoßen, das ich diesmal allerdings nicht so einfach erklären kann.
Zu meinem Programm
Ich habe ein "Hauptfaden" und einen Thread, der nebenher läuft. Beide Threads haben eine Referenz auf ein von mir erstelltes Objekt. Will ich nun eine bestimmte Methode dieses Objekts aufrufen, tut er dies auch, jeoch wird in dieser Methode dann eine weitere methode aufgerufen, welche dann einen Fehler verursacht.
Diese aufgerufene Methode sieht so aus
Code:
void fall()
{
System.out.println("fällt...");
this.draw(Color.white); // Hier gibt er den Fehler raus
y = (int) (y+5);
this.draw(Color.blue);
}
Der Fehler ist ein NullPointerException. Laut Doku wird diese Exception geworfen, wenn man auf ein Objekt zugreifen will, das gar kein Objekt ist. Ich sehe in der Methode aber nur ein Objekt verwendet und das ist das Color Objekt, das sich ja nicht ändert, egal von wo ich es aufrufe.
Ich hoffe ihr konntet mein Problem verstehen. Wenn ihr noch mehr Code, oder Angaben braucht, sagt es einfach. Schonmal danke für eure Hilfe