Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FindBugs警告删除_Java_Spring Boot_Gradle_Compilation_Findbugs - Fatal编程技术网

Java FindBugs警告删除

Java FindBugs警告删除,java,spring-boot,gradle,compilation,findbugs,Java,Spring Boot,Gradle,Compilation,Findbugs,运行FindBugs时,我遇到以下错误: 错误类型NP\u NULL\u在某个路径上 给出错误的代码如下: List-reviewerList=null; response=restAPI CAll//假设某个rest调用。 reviewerListDto=response.getBody()//它从不返回null //添加此检查是因为查找错误,否则它将不允许访问getReviewers()方法 如果(reviewerListDto!=null){ reviewerList=reviewerLi

运行FindBugs时,我遇到以下错误:

错误类型NP\u NULL\u在某个路径上

给出错误的代码如下:

List-reviewerList=null;
response=restAPI CAll//假设某个rest调用。
reviewerListDto=response.getBody()//它从不返回null
//添加此检查是因为查找错误,否则它将不允许访问getReviewers()方法
如果(reviewerListDto!=null){
reviewerList=reviewerListDto.getReviewers();
}
//这就是我被卡住的地方
对于(请求审阅者:审阅者列表){
reviewer.setPullrequestId(pullrequest.getId());
reviewer.setRepositoryId(pullrequest.getRepositoryId());
}
根据for循环中的FindBugs,该错误是因为
审阅者列表可以为空。但我知道它永远不会是空的。删除它的一种方法是在for循环之前检查
reviewerList
是否为
null
,但还有其他方法吗?

您可以:

@SuppressFBWarnings(value=“NP\u NULL\u在某些路径上”,justification=“这永远不能为NULL”)
但是,这基本上与您将
if
-语句放在那里的原因相同。当添加if语句时,您会说可能是这样的,并且只有在这种情况下才会执行代码。如果始终执行If语句,则没有理由使用If语句

因此,您还可以抑制if语句并忽略导致您添加if语句的警告

另一种方法是使用
reviewerList
将代码放入if语句中,或者如果异常为null(或者立即使用
assert
),则抛出异常(例如
AssertionError

List-reviewerList=null;
//response=restAPI CAll//假设某个rest调用。
reviewerListDto=response.getBody()//它从不返回null
断言你的名字=无效的
reviewerList=reviewerListDto.getReviewers();
对于(请求审阅者:审阅者列表){
reviewer.setPullrequestId(pullrequest.getId());
reviewer.setRepositoryId(pullrequest.getRepositoryId());
}

reviewerList
如果
reviewerListDto
等于
null
是,则将保持
null
状态,但reviewerListDto将永远不会为null。我补充说,如果条件是eviewerListDto=null因为find bug警告。我相信通过添加
if(reviewerListDto!=null){
您是在指示Findbugs响应
。getBody
实际上可以返回
null
。但是如果我不输入if,那么我就无法访问ListReviewerdTo.getReviewers();因为它认为它可以NPE这里的好做法是什么?对我来说,它是检查空列表,而不是断言和抑制。如果检查空,你应该使用
reviewerList
将代码也放在
If
中,并考虑如果它为空会发生什么。