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 次),并且它在该时间点打印了 null,但它不应该打印 null。谁能帮我找出原因吗?提前致谢。
最佳答案
您在评论中提到 Widgets.get(a,b)
可以返回 null
。鉴于此,您需要在实际调用方法上的任何实例方法之前检查方法的返回值是否为 null,以防止这种可能性。你没有这样做,所以在这种情况下你会崩溃。
您需要做的就是添加空检查,您的代码应该没问题:
WidgetChild readwidget = Widgets.get(a,b);
if(readwidget != null && readwidget.getText() != null) {
关于java - 这段代码有可能打印 null 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16568518/