Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Sonar:由于被调用方法的返回值,可能存在空指针解引用_Java_Sonarqube - Fatal编程技术网

Java Sonar:由于被调用方法的返回值,可能存在空指针解引用

Java Sonar:由于被调用方法的返回值,可能存在空指针解引用,java,sonarqube,Java,Sonarqube,由于上述代码中被调用方法的返回值,我得到了可能的空指针解引用 有人能告诉我确切的问题,以及为什么这是一个问题吗 if (response != null && response.getBody() != null && response.getStatusCode() == HttpStatus.OK) { return new BigDecimal(response.getBody()); } 提前谢谢!如果需要任何其他详细信息,请告诉我。So

由于上述代码中被调用方法的返回值,我得到了可能的空指针解引用

有人能告诉我确切的问题,以及为什么这是一个问题吗

if (response != null && response.getBody() != null && response.getStatusCode() == HttpStatus.OK) {
        return new BigDecimal(response.getBody());
}

提前谢谢!如果需要任何其他详细信息,请告诉我。

Sonar不知道对
getBody()
的两个连续调用将返回相同的值

因此,从静态分析器的角度来看,第二个调用返回
null
,这确实是可能的

我建议将主体分配给局部变量,并且只调用一次getter。是Sonar社区的一个参考资料,在那里有人将这种行为报告为bug,并收到了类似的响应

静态分析器实际上无法证明这两个调用将返回相同的值,除非
response
是最终的不可变类型。我还没有尝试过任何静态分析器来证明这一点

response.getBody() // returns a string value