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.

Java-Programmierung für Anfänger - bei Amazon *

Video: Java Runtime-Überblick

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:

Neue Artikel von GIGA SOFTWARE

  • Firefox Portable

    Firefox Portable

    Der Firefox Portable Download verschafft euch eine mobile Version des Mozilla-Browsers, die auch von USB-Sticks läuft und für deren Nutzung keine Installation notwendig ist.
    Marvin Basse
  • Mozilla Firefox 64-Bit

    Mozilla Firefox 64-Bit

    Hier zum Download bekommt ihr Mozilla Firefox als 64-Bit-Version, die die gewohnten Vorzüge des Browsers wie Geschwindigkeit, Komfort und Erweiterbarkeit mit der Ausnutzung der 64-Bit-Architektur verbindet.
    Marvin Basse
  • Mozilla Firefox

    Mozilla Firefox

    Mozilla Firefox oder einfach Firefox ist der Name eines der wichtigsten und am häufigsten benutzten Internetbrowsers unserer Generation. Der freie Webbrowser lässt sich heute nicht mehr aus dem Alltag unserer Internet-affinen Gesellschaft wegdenken und so ist es auch nicht verwunderlich, dass der schlaue Feuerfuchs stets verbessert wird.
    Jonas Wekenborg 7
* gesponsorter Link