Intellij Idea 如何在IntelliJ中抑制空指针警告

7z5jn7bk  于 2023-08-03  发布在  其他
关注(0)|答案(1)|浏览(315)

我有一个final变量可以为null的父类。它使用Nullable进行注解。父类由多个类扩展,其中一些类将此变量设置为Nullable,但另一些类将此变量设置为NonNull。现在,当我在子类中使用变量时,我看到了关于NullPointerException的警告。当我知道变量不能为null时,用if/null括起来似乎是多余的(在子类构造函数中,它被注解为NonNull)。如何让任何阅读代码的人都清楚它不能为空,并让IDE也清楚?我的想法是先使用assert属性!= null.但是我不知道这是不是一个好方法。

class A {

  @Nullable
  final String propertyA;

  public A (@Nullable String propertyA) {
      this.propertyA = propertyA;
  }
}

  class B extends A {

  public B (@NotNull String propertyA) {
      super(propertyA);
  }

  public void doSomething() {
      //Here is the warning from IntelliJ but I know it is not null.
      propertyA.equals(null);
  }
}

字符串

5kgi1eie

5kgi1eie1#

通过在doSomething方法中调用“propertyA”获得的值是类A中的属性,它用@Nullable注解。
如果你真的想避免这种情况,你可以使用一个getter,并在B类中用@NotNull注解覆盖它,但你只会复制你的代码。
请注意,@NotNull注解并不阻止值为空,它仅用于IJ中的代码警告!您应该在B构造函数中添加一个检查,以验证该值是否真的不为null。

相关问题