如何在没有NullPointerException的情况下返回数组对象?

时间:2013-03-02 04:36:21

标签: java nullpointerexception

宣称:

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)

2 个答案:

答案 0 :(得分:1)

第(1)行

Man[] man = new Man[1];

隐藏在此行(2)中声明的实例变量

private Man[] man;

任何体面的IDE都会对此发出警告。

这里是你应该如何初始化用line(2)

声明的第(1)行中的数组man
man = new Man[1];

答案 1 :(得分:0)

很明显,你有两个man数组变量,一个是初始化的,一个是(成员变量)不是。