Java中对象数组空指针异常问题
记录一个Java中遇到的问题。
在图的广度优先遍历中用到了队列,在类中定义的内部类,并且在外部类中声明了内部类的一个对象数组,但是在使用对象数组时一直报 NullPointerException。
部分代码如下:
public class BFS { public static void main(String[] args){ //部分代码略 //队列初始化 Note[] notes=new Note[5]; int head=1; int tail=1; notes[head].x=start; notes[tail].s=0; tail++; } }
class Note{
int x=0; //城市编号
int s=0; //转机次数
}
异常信息:
查了资料才发现这个问题:
这里的 Note[] notes=new Note[5]; 只是声明了一个对象数组,但是对象数组内的每个对象却并没有初始化,这里需要手动对每个对象进行初始化。加上了下面这串代码:
for(int i=0;i<N+1;i++){
notes[i]=new Note();
}
吾生也有涯,而知也无涯。