IntelliJ IDEA缺少潜在的NPE警告

时间:2018-04-11 09:47:21

标签: intellij-idea

考虑以下方法:

void foo(Map<String, String> map) {
    String v = map.get("key");
    if (v == null) {}
    System.out.println(v.toUpperCase());
}

IntelliJ(由于公司标准而坚持第14版)非常正确地警告我v.toUpperCase()可能会抛出NullPointerException。但是使用以下代码,即没有if语句,没有警告:

void foo(Map<String, String> map) {
    String v = map.get("key");
    System.out.println(v.toUpperCase());
}

如果我先不进行if检查,是否有一些配置会阻止NPE发出警告?或者这个错过的警告已被修复&#34;在以后的版本?

1 个答案:

答案 0 :(得分:2)

此处的行为在版本2018.1中保持不变。

如果添加空检查,代码检查会将变量假定为Nullable,因此会警告您对此变量进行进一步未经检查的调用。

您可以通过@SuppressWarnings("ConstantConditions")

来取消此操作