java - 这段代码有可能打印 null 吗?

标签 java swing applet null nullpointerexception

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/

相关文章:

java - 使用 PMD 的自定义规则 - 在运行时将值传递给规则

java - 在Spring MVC中获取客户端机器的IP地址

java - 在eclipse中放置一个小程序

java - Hibernate 忽略 fetchgraph

java - 找到最大最频繁元素

java - 检测 Java Swing 组件是否被隐藏

java - 按键和按钮兼容性 Java

java - JTabbedPane中添加的选项卡不显示

java - 使用 java 1.7.0.40 时,Applet 无法在 Chrome 或 FF 中运行

java - 如何使用 JRuby 创建 Java applet?