0
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);

}

这段代码在 while(50 次中有 1 次)中因 nullpointerexception 而崩溃,并且在该时间点打印 null ,这是不应该的。谁能帮我找出原因?提前致谢。

4

1 回答 1

3

Widgets.get(a,b)您在可以返回的评论中提到nullnull鉴于此,您需要通过在实际调用任何实例方法之前检查方法的返回值来防止这种可能性。你没有这样做,所以在这种情况下你会崩溃。

您需要做的就是添加空检查,您的代码应该没问题:

WidgetChild readwidget = Widgets.get(a,b);            
if(readwidget != null && readwidget.getText() != null) { 
于 2013-05-15T15:30:09.967 回答