Eclipse 中潜在的空指针访问 - 看似微不足道的例子

Fel*_*ett 5 java eclipse null pointers

我有这段非常基本的代码,Eclipse 给了我“潜在的空指针访问”警告/错误。

public class PotentialNull {
    public void test(final String nullableString) {
        boolean isNotNull = nullableString != null;

        if (nullableString != null) {
            // No problem
            System.out.print(nullableString.hashCode());
        }

        if (isNotNull) {
            // Potential null pointer access: The variable nullable may be null at this location
            System.out.print(nullableString.hashCode());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您在示例中看到的,编译器知道在第一个 if 语句nullableString中不能为 null。然而,在第二个它没有,我真的不会认为这太难弄清楚了。

有人可以确认这不是特定于我的系统/设置吗?

我知道,我可以抑制警告等,但我真的想知道这是否可能是一个错误。还是我忽略了什么?

关于这个的另一个问题似乎解决了一个更复杂的情况,所以我希望没关系,我再问一次。

gre*_*449 5

这在 Eclipse 错误260293 中进行了描述,这是作为 Won't Fix 关闭的几个重复之一。

该错误基本上是说 Eclipse 不跟踪变量之间的相关性isNotNullnullableString因此它不知道该值不能为空。