String readwidget(int a, int b){
WidgetChild readwidget = Widgets.get(a,b);
if(readwidget.getText() != null){
Task.sleep(10);
System.out.println(readwidget.getText());
return readwidget.getText();
}
Task.sleep(10);
return GOT_NULL;
}
while(readFirstWidget.equals(GOT_NULL) && t5.isRunning()) {
readFirstWidget = readwidget(1184, 13);
Task.sleep(50,80);
}
这段代码在使用nullpointerexception时会崩溃(50次中有1次),并且它在那个时间点不会打印出来。谁能帮助我找出原因?提前谢谢。
答案 0 :(得分:3)
您在评论中提到Widgets.get(a,b)
可以返回null
。鉴于此,您需要通过在实际调用任何实例方法之前检查null
方法的返回值来防范这种可能性。你没有这样做,所以你在那种情况下崩溃。
您需要做的就是添加空检查,您的代码应该没问题:
WidgetChild readwidget = Widgets.get(a,b);
if(readwidget != null && readwidget.getText() != null) {