DKW*_*Woo 5 java sonarlint-intellij
if (res.getBody() == null || res.getBody().getServiceResult() == null) {
return; //
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,sonarlint 抱怨 SonarLint: A "NullPointerException" 可能会被抛出;“getBody()”可以返回 null。(来自 res.getBody().getServiceResult() )
我认为“res.getBody() == null”首先检查 null,因此它应该转到返回行,而不是到达下一个 if 条件。
我是不是在想什么问题?
res.getBody() == null || res.getBody().getServiceResult() == null)
res.getBody()当您进行检查时,声纳检测到该值可能为空res.getBody()==null。
之后,你res.getBody()再打电话。
第一次可能为非空,但第二次则不然,声纳不知道这一点。
为了解决这个问题,只需执行以下操作:
BodyType body=res.getBody();
if (body == null || body.getServiceResult() == null) {
return;
}
Run Code Online (Sandbox Code Playgroud)
body之后您甚至可以重复使用。
如果您绝对确定它res.getBody()保持为空并且也没有被另一个线程修改,您还可以使用注释//NOSONAR来抑制警告。
| 归档时间: |
|
| 查看次数: |
6113 次 |
| 最近记录: |