当前,声纳在访问“ rs”(地图对象)时将以下代码标记为错误(空指针异常)。
如您所见,对象null条件已经通过使用Spring Assert进行了验证,并引发了异常。因此,访问空对象为假肯定。
Assert.isTrue(MapUtils.isNotEmpty(rs), "Unable to get Details");
if ( rs.containsKey("error")) { <-Sonar reports NullPointerException issue here
}
类似地,在下面的代码中,我们使用&&运算符,它会评估操作的左侧,如果为true则继续执行下一个操作,在这种情况下也为false肯定
if(MapUtils.isNotEmpty(rs) && rs.containsKey(Dictionary.MY_NUMBER)) {
}