【发布时间】:2016-10-14 16:23:46
【问题描述】:
我在这个电话minRating.getRatgCaam()有一个声纳警报
警报与声纳规则有关:不应取消引用空指针。
例如:
AgencyRating minRating = null;
.......
if (!getRatingUtilities().isNR(minRating)) {
return minRating.getRatgCaam(); //Sonar: Null pointers should not be dereferenced
}
isNR(minRating) 方法是一个辅助方法,用于验证对象 minRating 是否为空
public boolean isNR(AgencyRating rating) {
return rating == null || isNR(rating.getRatgCaam());
}
当我按照声纳的建议添加非空验证时。声纳没问题。
if (minRating !=null && !getRatingUtilities().isNR(minRating)) {
return minRating.getRatgCaam(); // no more alert
}
Sonar 无法确定辅助方法是否进行了 null 验证。我不需要再次进行此验证。
我的情况是误报吗?
【问题讨论】:
-
这是误报,但最好不要在
isNR中进行null签入。rating.getRatgCaam()版本有什么作用?