Eclipse中潜在的空指针访问 - 看似简单的例子

时间:2016-10-25 08:50:16

标签: java eclipse pointers null access

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

Yes

正如您在示例中所看到的,编译器知道在第一个if语句中,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()); } } } 不能为空。然而,在第二部分它并没有,我真的不会想到这太难以理解。

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

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

Another question about this似乎解决了一个更复杂的情况,所以我希望我能再次提问。

2 个答案:

答案 0 :(得分:4)

这在Eclipse错误260293中描述了几个重复项中的一个被关闭为Won&#ttt Fix。

该bug基本上表示Eclipse不跟踪变量isNotNullnullableString之间的相关性,因此它不知道该值不能为空。

答案 1 :(得分:-4)

在分配布尔变量isNotNull时使用条件运算符。 改变行

boolean isNotNull = nullableString != null;

boolean isNotNull = (if(nullableString != null)?True:False);