sonarQube 空值检查

问题描述 投票:0回答:1

我有一个类似的代码

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 sonarqube
1个回答
0
投票

首先,您提供了无效的 Java 代码,因为您省略了参数类型。

什么时候可以抛出NullPointerException?每次您尝试取消引用指向 null 的变量时。

由于

existingValues
的可空性,无法抛出 NPE,这不可能,因为之前的空检查已经处理了它。

但是

updatedValues.conFactor
updatedValues.url
,尤其是 existingValue.url 上的
 相等性检查
可能会引发 NPE。

© www.soinside.com 2019 - 2024. All rights reserved.