宣称:
private Man[] man;
这是初始化:
Man[] man = new Man[1];
for (int i = 0; i < 1; i++){
man[i] = new Man();
for (int j = 0; j < 3; j++){
man[i].eatThis(table.foods[table.topFood-1]);
table.topFood--;
}
}
想要打印出来:
System.out.println(getMan(0));
转到:
public Man getMan(int k){
return man[k];
}
但我收到NullPointerException。为什么?虽然:
System.out.println(man[0]);
工作正常。
Exception in thread "main" java.lang.NullPointerException
at ManRunning.getMan(ManRunning.java:80)
at ManRunning.newGame(ManRunning.java:133)
at ManRunning.<init>(ManRunning.java:57)
at RunDevilRun.main(RunDevilRun.java:9)
答案 0 :(得分:1)
第(1)行
Man[] man = new Man[1];
隐藏在此行(2)中声明的实例变量
private Man[] man;
任何体面的IDE都会对此发出警告。
这里是你应该如何初始化用line(2)
声明的第(1)行中的数组manman = new Man[1];
答案 1 :(得分:0)
很明显,你有两个man
数组变量,一个是初始化的,一个是(成员变量)不是。