Reports fields in an anonymous class that are named identically to local variables or parameters of the containing method or lambda expression.

As a result of such naming, you may accidentally use the anonymous class field where the identically named variable or parameter from the containing method is intended.

A quick-fix is suggested to rename the field.

Example:


  class Test {
    public Test(String value) {
      Object foo = new Object() {
        private String value = "TEST";
        public void foo() {
          System.out.println(value); //the field is accessed, not the parameter
        }
      };
    }
  }