我在类内部遍历带有对象的数组时遇到了一些麻烦。我在这里写了一个小样,您可以按照以下说明进行:

Tank tanks[] = new Tank[2];
tanks[0] = new Tank();
tanks[1] = new Tank();
tanks[0].doStuff(tanks);

doStuff(Tank[] tanks) {
    for (int i = 0; i < tanks.length; i++) {
        if (tanks[i].equals(this)) continue;
        // Do stuff
    }
}


因此,我有一个类型为Tank的数组。然后,我在Tank类中调用方法doStuff。该方法获取数组并循环遍历。然后,我想对不是类的当前实例的每个容器都进行处理。希望您能理解我的代码和说明。

问题是我得到if (tanks[i].equals(this))的nullPointerException

我在这里做错了什么?

最佳答案

这意味着tanks[i]为空。 (或者您覆盖的equals()方法存在错误)

您需要检查一下。

10-07 18:56