IntelliJ 空检查警告

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

我经常有这样的代码:

protected @Nullable Value value;

public boolean hasValue() { return value != null; }

问题在于,当我像这样进行空检查时:

if (!hasValue()) throw...
return value.toString();

然后 IntelliJ 会警告我可能出现 NPE

if (value != null) throw...
return value.toString();

避免此警告。

有没有办法装饰我的

hasValue()
方法,以便 IntelliJ 知道它执行空检查?并且不会显示警告?

java intellij-idea annotations jetbrains-ide
2个回答
6
投票

Intellij-Jetbrains 是非常聪明的 IDE,它本身就为您提供了解决许多问题的方法。

看下面的截图。它建议您消除此警告的五种方法:

1) 添加

assert value != null
;

2) 将 return 语句替换为

return value != null ? value.toString() : null;

3)用

包围
    if (value != null) {
        return value.toString();
    }

4)通过添加评论来抑制对此特定声明的检查:

//noinspection ConstantConditions
return value.toString();

5)至少添加,正如之前 @ochi 建议使用

@SuppressWarnings("ConstantConditions")
注释,它可以用于方法或整个类。

要调用此上下文菜单,请使用快捷键

Alt+Enter
(我认为它们对于所有操作系统都是通用的)。

enter image description here


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