java FindBugs警告删除
运行FindBugs时,我遇到以下错误:
Bug type NP_NULL_ON_SOME_PATH.
给出错误的代码如下:
List<Request> reviewerList = null;
response = restAPI CAll // assume some rest call.
reviewerListDto = response.getBody(); //it never returns null
// this check is added because of find bugs, else it wont allow to access getReviewers() method
if (reviewerListDto!=null) {
reviewerList = reviewerListDto.getReviewers();
}
// HERE is the point I am stuck
for (Request reviewer : reviewerList) {
reviewer.setPullrequestId(pullrequest.getId());
reviewer.setRepositoryId(pullrequest.getRepositoryId());
}
由于reviewerList
可以按照for循环中的FindBugs为空,因此出现错误。但我知道这永远都不会发生。删除它的一种方法是在for循环之前检查reviewerList
null
,但是还有其他方法吗
# 1 楼答案
您可以use ^{} if you add ^{} to the classpath :
但是,这基本上与您将
if
-语句放在那里的原因相同。当添加if语句时,您会说可能是这样的,并且只有在这种情况下才会执行代码。如果始终执行If语句,则没有理由使用If语句因此,您还可以抑制if语句并忽略导致您添加if语句的警告
另一种方法是将使用
reviewerList
的代码放在if语句中,或者在它为null时抛出异常(例如AssertionError
)(或者立即使用assert
)