报告对匿名类中的超类字段的模糊访问,其中环绕的代码中有同名的局部变量、参数或字段。

在本例中,看似访问了环绕的代码中的一个元素,实则访问了匿名类扩展的超类中的一个字段。

为阐明代码的意图,建议对字段访问添加显式的 super 限定符。

示例:


    class First {
      protected String test;
    }
    class Second {
      void foo(String test) {
        new First() {
          {
            System.out.println(test); // 访问了此字段,而不是此参数
          }
        };
      }
    }

在应用快速修复后:


    class First {
      protected String test;
    }
    class Second {
      void foo(String test) {
        new First() {
          {
            System.out.println(super.test);
          }
        };
      }
    }