java.lang.NullPointerException – was tun, bei der Java-Fehlermeldung?

Christin Richter
1

Wer sich schon einmal mit Java auseinandergesetzt hat, wird die Fehlermeldung java.lang.NullPointerException vielleicht bereits kennen. Was euch Java mit dieser Meldung sagen möchte und wie ihr den Fehler beheben könnt, erfahrt ihr hier.

Programmiert ihr in Java und erhaltet den Fehler “java.lang.NullPointerException” – NPE abgekürzt –, kann dieser “null pointer” eine Vielzahl an Ursachen haben. Wie ihr mit der Fehlermeldung umgeht, welche Gründe es gibt und welche Lösungen euch bei NullPointerException zur Verfügung stehen, erfahrt ihr nachfolgend.

Video: Java Runtime-Überblick

45.946
Winload Java Runtime Video Overview

java.lang.NullPointerException: Was ist das?

In der Java-Programmierung taucht besonders der Fehler “java.lang.NullPointerException” immer wieder in zahlreichen Variationen auf. Dabei handelt es sich um einen Fehler, den das Compiler-Programm nicht erkennen kann und beim Ausführen eines Scripts deshalb diese Fehlermeldung ausspuckt.

java-lang-NullPointerException
Im Detail bedeutet diese Fehlermeldung, dass das Script probiert, auf ein Objekt zuzugreifen, das den Wert “null” enthält. Um das Problem zu lösen, müsst ihr die Referenz entweder mit einer anderen Referenz oder mit dem new-Operator initialisieren, dazu später mehr.

NullPointerException – Varianten

Ein NullPointerException-Fehler entsteht immer dann, wenn null anstelle einer Instanz eines Objekts verwendet wurde. Dies ist immer dann der Fall, wenn ihr einer Variablen eines Objekts den Wert null zugewiesen habt und auf dieses Objekt zugegriffen wird.

In folgenden Fällen wird der NullPointerException-Fehler angezeigt:

  • beim Aufruf einer Methode eines null-Objekts
  • bei der Abfrage der Länge eines Arrays, das gleich null ist
  • beim Zugriff auf ein Attribut eines null-Objekts
  • bei einem Zugriff auf ein Element eines Arrays, welches gleich null ist

java.lang.NullPointerException – Ursachen

Häufige Fehlerursachen sind:

  • Ein Objektattribut wurde bei der Deklaration auf null gesetzt und vor dem ersten Zugriff nicht initialisiert.
  • Einer Variablen wird durch eine Methode ein Objekt zugewiesen, welche anstelle eines Objekts null zurückliefert.
  • Eine weitere Fehlerursache könnte ein Objektattribut, welches einen identischen Namen wie eine lokale Variable trägt. Sollte dann versehentlich auf die lokale Variable anstelle des Objektattributs zugegriffen werden, kommt es zu einem Fehler.

Beispielsweise tritt der NPE-Fehler auf, wenn definiert ist:

Object obj = null;
obj.hashCode();

Die Objekt-Referenz zeigt zu keinem definierten Ort. Wenn sich die Methode wie folgt auf ein null-Objekt bezieht: “doSomething(null);”, kann es zur NullPointerException kommen. Diese Meldung weist euch auf den Fehler hin, damit ihr den Code berichtigen könnt.

Wenn ihr beispielsweise die Variable für ein Objekt festlegt und das Objekt aber noch nicht initialisiert ist, erhaltet ihr im einfachsten Fall die Fehlermelsung “num may not have been initialized”.

java-lang-NullPointerException-Fehler

java.lang.NullPointerException: Lösung, um den Fehler zu beheben

Um den NullPointerException-Fehler beheben zu können, müsst ihr zunächst einmal herausfinden, welches Objekt den Wert null zugewiesen bekommen hat. Prüft immer auf null, wenn ihr das Objekt nicht selbst erstellt habt und null kein valides Argument für die Methode ist. In welcher Zeile sich der Fehler versteckt, könnt ihr anhand der Fehlermeldung herausfinden.

Dann könnt ihr mit einem Debugger testen, welches Objekt null ist. Achtet dabei darauf, dass ihr euer angelegtes Objekt nicht überschreibt bzw. mit einem Null-Wert abspeichert. Anschließend solltet ihr natürlich noch herausfinden, warum das Objekt den Wert null besitzt.

NPE vermeiden: Tipps

Es gibt verschiedene Methoden, um beim Java-Programmieren die NullPointerException-Fehlermeldung zu vermeiden:

  • Prüft, ob ein Objekt null ist bevor ihr eine Methode auf es anwendet oder bevor ihr versucht, ihm eine Variable zu geben, die es bereits hat.
  • Strukturiert euren Code sinnvoll, beispielsweise: if (“SomeString”.equals(inputString)) {} //
    Auch wen inputString null ist, wird keine Exception ausgegeben.
  • Macht Anmerkungen wie @Nullable und @NotNull.

Über Java

Java ist eine objektorientierte Programmiersprache des Unternehmens Sun Microsystems. Die Programmiersprache ist ein Bestandteil der Java-Technologie und wird in erster Linie zur Entwicklung von Programmen angewandt.

Zum Thema:

Weitere Themen: Java Runtime Environment, Ratgeber, Javascript

Neue Artikel von GIGA SOFTWARE