外部クラスのフィールドと名前がまったく同じローカル変数を報告します。 このような命名を行うと、まったく同じ名前のフィールドが意図されている場合に変数を誤って使用する可能性があります。

変数の名前を変更するクイックフィックスが提案されます。

例:


  public class Foo {
    public Object foo;

    void bar() {
      Object o = new Object() {
        void baz() {
          Object foo; // ローカル変数 'foo' は 'Foo' クラスのフィールドを不可視にします
        }
      };
    }
  }

このインスペクションでは、以下のオプションを構成できます。

  1. アクセスできないフィールドを無視する - 不可視 (フィールドが private の場合など) のスーパークラスのフィールドと名前がまったく同じローカル変数を無視します。
  2. 非 static フィールドを不可視にする static コンテキストのローカル変数を無視する - たとえば、ローカル変数が static メソッド内または static 内部クラスのメソッド内にある場合に無視します。