eclipse:使用未初始化的字段时引发编译器警告

时间:2018-04-24 10:53:58

标签: java eclipse nullpointerexception warnings

在GWT应用程序(gwt: creating an instance of Window causes application to hang out)的上下文中,我将值设置为我忘记初始化的文本小部件,导致类似于浏览器控制台中的空指针异常。

困扰我的是Eclipse没有显示任何警告/错误。所以我查看了以下示例:

Object obj;
//obj = new Object();
obj.toString();

Eclipse说:

  

本地变量obj可能尚未初始化

但是当obj是班级的一个领域时,我没有得到任何警告:

public class MyClass
{
   Object obj;

   public MyClass()
   {
        //obj = new Object();
        obj.toString();// I expect to get some warning here
   }
}

我去Window>偏好> Java>编译器>错误/警告,我使用文本'null'进行过滤,唯一相关的结果在'Null analysis'部分下面;在这里,空指针访问已设置为引发警告; 潜在空指针访问设置为忽略,我修改它以引发警告,但我仍然没有得到上述示例的警告。还有其他方法告诉编译器提醒我这样的情况吗?

1 个答案:

答案 0 :(得分:0)

我用Google搜索了一下,我遇到了Eclipse's reporting bug system,我从作者那里看到了这句话:

  

默认情况下未分配未分配的变量,并且用户应在代码的所有可能分支中分配它,否则会发生编译时错误。

还有:

  

只有字段获得默认值。需要在所有可能的路径中初始化局部变量。

所以他们的想法是他们需要你在需要的时候初始化变量,如果你还没有完成它应该是编译器的问题,就词法,语法和语义分析器来说没有问题。担心。这就是为什么不提出警告的原因。