我的超类中有这个方法,它扩展了活动:
protected boolean isStopAvailable(BusStop stop) {
if (stop == null) {
stop = new BusStop();
} else if (stop.getName().length() > 0) {
return true;
} else {
return false;
}
return false;
}
我在我的子类isStopAvailable(object)
中调用它;在启动对象后,如何在使用对象中的方法时获取空指针异常怎么可能?
答案 0 :(得分:3)
stop.getName()
返回null
else if (stop.getName() != null && stop.getName().length() > 0)
应该解决它
答案 1 :(得分:3)
如果getName()
返回null,您将获得NPE。您正在尝试对null对象执行长度函数,因此此异常。您应该添加另一个else if
支票:
...
else if (stop.getName() == null) {
// do something
}
希望这有帮助。
答案 2 :(得分:0)
stop.getName()返回null,这就是你得到NPE的原因。
答案 3 :(得分:0)
我敢打赌name
中的stop
字段为空。您的第一个检查是查看对象是否为空,而不是其中的字段。因此,如果stop.getName()
返回null,则在尝试调用长度时会得到NPE
答案 4 :(得分:0)
我建议将NPE放在这一行:else if (stop.getName().length() > 0)
这可能是因为您已检查对象BusStop
是否为null
但您未检查stop.getName()
是否为null
。
做类似的事情:
else if (stop.getName() == null) {
// set stop.setName()
}
希望这有帮助,玩得开心!