声纳规则 "possible null pointer exception"
sonar rule "possible null pointer exception"
我在我的 Sonar 中发现了一个我不知道如何解决的问题。
我的错误是:
Possible null pointer dereference in mypackage.myMethod(String) due to return value of called method
一开始是:
response.getBody().getData();
所以我所做的是:
return (response != null && response.getBody() != null) ? response.getBody().getData() : null;
但是错误依然存在
我是不是理解错了??我该如何解决?
每次你调用一个方法,你可能会得到不同的结果。您可能知道每次都会得到相同的结果,但 Sonarqube 不会。
将 response.getBody()
分配给变量,这样您就不必再次调用它:
if (response != null) {
var body = response.getBody();
if (body != null) {
return body.getData();
}
}
return null;
您可以使用 Optional 来完成,或者:
return Optional.ofNullable(response).map(ResponseType::getBody).map(BodyType::getData).orElse(null);
我在我的 Sonar 中发现了一个我不知道如何解决的问题。
我的错误是:
Possible null pointer dereference in mypackage.myMethod(String) due to return value of called method
一开始是:
response.getBody().getData();
所以我所做的是:
return (response != null && response.getBody() != null) ? response.getBody().getData() : null;
但是错误依然存在
我是不是理解错了??我该如何解决?
每次你调用一个方法,你可能会得到不同的结果。您可能知道每次都会得到相同的结果,但 Sonarqube 不会。
将 response.getBody()
分配给变量,这样您就不必再次调用它:
if (response != null) {
var body = response.getBody();
if (body != null) {
return body.getData();
}
}
return null;
您可以使用 Optional 来完成,或者:
return Optional.ofNullable(response).map(ResponseType::getBody).map(BodyType::getData).orElse(null);