static にできる内部クラスを報告します。

static の内部クラスは、外部インスタンスへの暗黙的な参照を維持しません。 Java 17 以前を使用している場合、これによって一般的なメモリリークの原因が未然に取り除かれ、クラスインスタンスごとのメモリ消費量が削減されます。

例:


  public class Outer {
    class Inner { // 非 static
      public void foo() {
        bar("x");
      }

      private void bar(String string) {}
    }
  }

クイックフィックス適用後:


  public class Outer {
    static class Inner {
      public void foo() {
        bar("x");
      }

      private void bar(String string) {}
    }
  }