我有以下代码:

RoomCell r = b.GetRoomCellAt(1, 2);
assertTrue(r.isDoorway());


第二行由于空指针异常而失败,就像r尚未实例化一样。但是我将其设置为等于该方法所检索的单元格,因此显然它不是null。

为什么我可能会收到此错误?

最佳答案

您的完整堆栈跟踪信息是什么?为了确定以下哪个原因是必需的:

GetRoomCellAt可能找不到值并返回null

GetRoomCellAt的实现有可能访问空指针

isDoorway的实现有可能访问空指针

仅供参考,优良作法是使用@Nullable注释来注释参数和返回类型

09-25 19:23