ResponseEntity<....> result = restTemplate.exchange(....);
result.getHeaders().getContentType().getType()
result.getBody()
result.getHeaders().getContentType().getSubtype()
这使得我的代码有太多的空检查。
这能避免吗?
使用java 8 JavaDocs中的optional
:
String contentType = Optional.ofNullable(result)
.map(HttpResponse::getHeaders)
.map(Headers::getContentType)
.map(ContentType::getType)
.orElse(null);
httpresponse
应该是result
的类型,headers
应该是getheaders()
的返回类型,依此类推。
您可以使用orelse()
以外的其他终止运算符:
.orElseGet(() -> someOtherProcess());
.orElseThrow(() -> new RuntimeException("Content Type was Null"));
由于上面代码上调用的方法的返回值,我得到了可能的空指针解引用。 有人能让我知道确切的问题和为什么它是一个问题吗? 提前道谢!如果需要其他细节,请告诉我。
我从Sonar那里得到问题:“由于调用方法的返回值,样式-可能的空指针取消引用。findbugs:np_null_on_some_path_from_return_value。问题在lockuntil.after(new Date())上; 我试图用 但它引入了其他问题。 谁能指导一下吗?
我试图用以下代码指出声纳中的关键问题: 我也做了下面的更改,但仍然不起作用 请帮忙。
嗨我有以下方法: 不得不提的是,startDate和endDate是长变量。我尝试在if条件中添加null检查,也尝试使用longValue()方法,但没有结果。你知道我怎样才能解决这个问题吗?可能是fndBugs端的bug?
我已经在我的sonar实例上测试了规则“正确性--可能的空指针取消引用”和“正确性--在异常路径的方法中可能的空指针取消引用”。不幸的是,以下代码从未被检测为错误 Netbeans能够正确检测到此问题,但sonar 3.6.1不能。 谢谢你的帮助
此代码中可能存在空指针取消引用错误: 如何解决这些问题?