Sonarqube没有抱怨null布尔拆箱

时间:2018-02-06 20:02:23

标签: java sonarqube

My Sonar 6.7.1 LTS实例无法识别以下代码中的NullPointerException:

public static boolean getBooleanFromMap() {
    final Map<String, Boolean> map = new HashMap<>();
    map.put("a", false);
    return map.get("b"); // line 118
}

public static void main(final String[] args) {
    System.out.println(getBooleanFromMap());
}

在方法“getBooleanFromMap()”中,从HashMap中检索一个空的布尔值,然后将该空值取消装箱并作为布尔值返回(在我的示例中为第118行)。 取消装箱会导致NullPointerException,例如运行“main”方法时。

Sonar(内置Java分析器5.1(build 13090))并没有抱怨这一点。为什么呢?

此外,当我没有HashMap但是使用“org.apache.sling.api.resource.ValueMap”的更复杂的方法时,其中“get”方法甚至用@CheckForNull注释,Sonar也没有看到什么。 有没有办法让Sonar抱怨这个?

1 个答案:

答案 0 :(得分:1)

目前不支持检测空值的取消装箱。

您可以关注此票证https://jira.sonarsource.com/browse/SONARJAVA-2126