static フィールドへのアクセスのうち、呼び出しが宣言クラス自体ではなく、宣言クラスのサブクラスによって修飾されているものを報告します。

Java ではこのような修飾が可能ですが、このようなアクセスは継承とオーバーライドが微妙に混同されている可能性を示しています。

例:


  class Parent {
    static int foo = 0;
  }

  class Child extends Parent { }

  void bar() {
    System.out.println(Child.foo);
  }

クイックフィックスを適用した結果:


  class Parent {
    static int foo = 0;
  }

  class Child extends Parent { }

  void bar() {
    System.out.println(Parent.foo);
  }