已经声明了带有对象的java null指针异常

jav*_*van 1 java

如果门是空的,我正试图将一架飞机停在我阵列的一个门口.如果大门被占用,那么我将把飞机停在空置的大门上,就像在我的其他声明中所做的那样.当我运行我的测试器时,我在if语句的行上得到了一个java.lang.NullPointerException.我不知道为什么.任何建议表示赞赏.

public void parkPlane(Plane plane){
    for (int i = 0; i < this.plane.length; ++i) {
        if(this.plane[i].equals(null)){ //java.lang.NullPointerException pointing to this line.
            plane.setGateNumber(i);
        }
        else{
            plane.setGateNumber(getVacantGate());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Fly*_*ter 8

如果为null,则调用equals它将引发异常.请==改用.

问题是如果对象为null,则它不会被初始化(即使它已被声明).调用任何方法null引发a NullPointerException.但是,==比较对象在内存中的位置; 如果它们存储在同一个地方,它们就是完全相同的对象.如果两个对象都是null,则认为它们都存储在同一个地方(无处),所以它们是相同的.