我有一个类似的代码
boolean shouldPublish(existingValues, updatedValues){
if(existingValues==null)
return false;
// compare values
if(!(Double.compare(existingValues.conFactor,updatedValues.conFactor) !=0) || !(existingValue.url.equals(updatedValues.url))){
return true;
}
}
SonarQube 给我一个错误,说 NullpointerException 可能会在 Double.compare 语句的现有值上抛出。谁能帮我解决这个问题吗?
首先,您提供了无效的 Java 代码,因为您省略了参数类型。
什么时候可以抛出NullPointerException?每次您尝试取消引用指向 null 的变量时。
由于
existingValues
的可空性,无法抛出 NPE,这不可能,因为之前的空检查已经处理了它。
但是
updatedValues.conFactor
、updatedValues.url
,尤其是 existingValue.url
上的 相等性检查可能会引发 NPE。