Wie kann ich den Fehler beheben(Java/ Programmieren)?

5 Antworten

Du scheinst auf ein Objekt zuzugreifen dessen Referenz nicht (mehr) vorhanden ist.
Am besten Debuggen und die zutreffenden Objekte dabei beobachten. Greifst du auf eins zu dessen Wert NULL ist, hast du den Fehler gefunden.

LG Knom

Woher ich das weiß:Studium / Ausbildung – Softwareentwickler mit 10 Jahren Berufserfahrung 💾

Na dann ließ doch mal die Fehlermeldung. Da ist bei dir wohl irgendwas NULL was nicht NULL sein sollte..

Woher ich das weiß:Studium / Ausbildung – Informatikstudium

Das ist ein schöner Fall, bei dem ersichtlich wird, wieso Kapselung nützlich ist (die du aber nicht beständig einsetzt). Würdest du deine Attribute immer über eine Getter-Methode aufrufen, könntest du flexibler filtern und testen:

private Image[][] images; // will be defined somewhere, maybe in constructor

public Image getImage(int x, int y) {
  // better check if x and y are in correct range and images attribute is not null ...
      
  Image image = images[x][y];

  // your debug message
  if (image == null) {
    System.err.println("Image does not exist!");
  }

  return image;
}

Das einzige was in Zeile 21 null sein kann, ist die Instanz des Bildes. Die Variablen g und var sind auf jeden Fall definiert, über letztere Instanz greifst du nur auf primitive Datentypen zurück, die nicht null sein können.

P.S.: Das du meinen Rat von letzter Woche bezüglich der Bezeichner nicht berücksichtigst, finde ich schade.

Indem Du einen Breakpoint setzt und dann debuggst und schaust, welche der beteiligten Variablen denn nun null ist. Ich tippe auf img.

Da kann ich dir leider nicht helfen. Am besten ist es, wenn du die Frage auf StackOverflow erneut stellst, dort sind fachkundige Leute unterwegs.

Woher ich das weiß:Berufserfahrung

Knomle  10.10.2019, 14:03

das sind sie hier auch :P

2
Knomle  10.10.2019, 14:04
@AlexanderRoy

Deshalb lassen die Experten hier auch Taten sprechen, in dem sie gute Antworten schreiben :)

2
unsignedInt  10.10.2019, 14:05

Warum antwortest du denn, wenn du nicht helfen kannst? Auf gutefrage.net sind btw. auch fachkundige Leute unterwegs.

2
AlexanderRoy  10.10.2019, 14:08
@unsignedInt

Weil ich ihm nicht direkt weiter helfen kann, habe ich ihm nur den Tipp mit StackOverflow gegeben. Ich möchte Ihre Kompetenz nicht anzweifeln, bin aber kein großer Freund von allgemeinen Foren in diesem Belange und bin der Annahme, dass ihm dort ggf. schneller geholfen wird. Kein Grund total zu eskalieren.

1