Gin*_*eri 6 java sonarqube sonarqube-scan
SonarQube 向我报告此错误:A "NullPointerException" could be thrown; "getBody()" can return null.
这是代码:
if (holdingResponseEntity == null || holdingResponseEntity.getBody() == null || holdingResponseEntity.getBody().getError() || holdingResponseEntity.getBody().getResult() == null) { throw new HoldingNotFoundException("Holding whit id=" + idHolding + " not found-"); }
Run Code Online (Sandbox Code Playgroud)
您首先测试是否getBody()返回null。
SonarQube 看到了这一点并认为该方法可以返回 null。
然后,您再次调用相同的方法。SonarQube 只知道该方法可以返回 null,因此它会告诉您警告。
换句话说,SonarQube 认为它可能返回与null第一次不同的内容,但null第二次返回。
如果该方法只是一个简单的 getter 并且对象没有并发修改,那么这没有问题。
要删除警告,您可以执行以下操作之一:
getBody()到变量中,检查是否为空,如果不为空则继续//NOSONAR评论,告诉 SonarQube 您知道自己在做什么。请注意,如果您决定采用第二种情况,您可能需要在评论中解释为什么可以这样做。