尽管检查了null,但为什么源代码分析器声称NullPointerException可能会被抛出

时间:2016-02-24 19:47:45

标签: java nullpointerexception

我正在查看我刚刚继承并运行源代码分析器的一些代码。它指出我在这里面临NullPointerException的风险:

if(!(strLineData == null) && !(strLineData.isEmpty()))

虽然这显然是一种测试String的愚蠢方式(并且它已经完成了所有这些!),为什么会抛出NullPointerException?如果strLineData为null,它不会评估if语句的后半部分,对吧?

1 个答案:

答案 0 :(得分:1)

你是对的。似乎该工具可能被窃听,因为language specification

提到了这一点
  

条件和操作员&&就像& (§15.22.2),但仅在其左侧操作数的值为真时才计算其右侧操作数。