Java 声纳';可能的空指针解引用';几乎每个方法调用都出错
我正在使用Spring的RestTemplate从远程服务获取一些数据:Java 声纳';可能的空指针解引用';几乎每个方法调用都出错,java,sonarqube,Java,Sonarqube,我正在使用Spring的RestTemplate从远程服务获取一些数据: ResponseEntity<....> result = restTemplate.exchange(....); Sonar不喜欢这段代码,几乎所有这些方法调用都会报告“可能的空指针解引用”错误。似乎我需要对几乎每个返回值进行空检查 这使得我的代码有太多的空检查 这可以避免吗?使用java 8中的可选: HttpResponse应该是result的类型,Headers应该是getHeaders()的返回类
ResponseEntity<....> result = restTemplate.exchange(....);
Sonar不喜欢这段代码,几乎所有这些方法调用都会报告“可能的空指针解引用”错误。似乎我需要对几乎每个返回值进行空检查
这使得我的代码有太多的空检查
这可以避免吗?使用java 8中的
可选:
HttpResponse
应该是result
的类型,Headers
应该是getHeaders()
的返回类型,依此类推
您可以使用除orElse()以外的其他终止运算符。
:
是的,关掉我手里没有的支票。它的团队级别设置。然后确保你过早地避免NPE。
result.getHeaders().getContentType().getType()
result.getBody()
result.getHeaders().getContentType().getSubtype()
String contentType = Optional.ofNullable(result)
.map(HttpResponse::getHeaders)
.map(Headers::getContentType)
.map(ContentType::getType)
.orElse(null);
.orElseGet(() -> someOtherProcess());
.orElseThrow(() -> new RuntimeException("Content Type was Null"));