我遇到了以下问题:我有一个带有私有成员的java类,如下所示:

private Arcs[] arcs;


这尚未在构造函数中初始化,因为我尚不知道向量的长度,但已在read函数(从文件中读取信息)中对其进行了初始化。
在此功能中,我执行以下操作:

arcs = new Arcs[n]; //n is a number read from file


然后有一段时间,我从文件中读取了其他内容,然后得到如下内容:

while(condition){
...
arcs[i].add(blah); //i is a valid number, smaller than n, and the add function is also correct
...
}


但是在这里我有一个错误,说NullPointerException,我不明白为什么。如果有人向我解释发生了什么,我将不胜感激。

最佳答案

您是否真的在Arcs中存储了arcs[i]对象?如果不是,则arcs[]的所有元素都将初始化为null。 (因此,NPE)

做这样的事情:

while(condition){
    // ...
    arcs[i] = new Arcs();
    arcs[i].add(blah);
    // ...
}


参考:


Java教程:Arrays

09-18 05:29