Heim >Java >javaLernprogramm >Warum erhalte ich eine NullPointerException, wenn ich ein Array benutzerdefinierter Objekte erstelle?

Warum erhalte ich eine NullPointerException, wenn ich ein Array benutzerdefinierter Objekte erstelle?

Barbara Streisand
Barbara StreisandOriginal
2024-12-25 07:35:31471Durchsuche

Why Do I Get a NullPointerException When Creating an Array of Custom Objects?

NullPointerException beim Instanziieren eines Arrays benutzerdefinierter Objekte

Wenn Sie versuchen, ein Array von Objekten zu erstellen, kann es zu einer NullPointerException kommen, wenn Sie dies nicht tun Initialisieren Sie die einzelnen Elemente des Arrays ordnungsgemäß.

Bedenken Sie Folgendes Code:

public class ResultList {
    public String name;
    public Object value;
}

public class Test {
    public static void main(String[] args) {
        ResultList[] boll = new ResultList[5];
        boll[0].name = "iiii"; // NullPointerException here
    }
}

In diesem Beispiel erstellen Sie ein Array von ResultList-Objekten, haben aber noch keine tatsächlichen Objekte erstellt, die Sie den Array-Elementen zuweisen möchten. Infolgedessen sind alle Elemente des boll-Arrays zunächst null und der Versuch, auf boll[0].name zuzugreifen, löst eine NullPointerException aus.

Um diese Ausnahme zu beheben, müssen Sie die Array-Elemente initialisieren, bevor Sie auf ihre Eigenschaften zugreifen . Dies kann erreicht werden, indem Sie mit dem Schlüsselwort new eine neue Instanz der ResultList-Klasse erstellen und diese dem Array-Element zuweisen, wie folgt:

boll[0] = new ResultList();

Nachdem Sie diese Zeile hinzugefügt haben, können Sie auf den Namen zugreifen und Werteigenschaften von boll[0], ohne dass eine NullPointerException auftritt.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich eine NullPointerException, wenn ich ein Array benutzerdefinierter Objekte erstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn