PMD Error
Avoid autogenerated methods to access private fields and methods of inner / outer classes
Sample Example
public class Test { public static void main(final String[] args) { //code } public void test(){ Executors.newSingleThreadExecutor().execute(new Thread() { @Override public void run() { final int a = getNum(); System.out.println(a); } }); } private int getNum() { return 0; }}
Cause of error
This PMD error is reported by calling the private method or variable of the external class in the method of the anonymous inner class.
Workaround
You can change the private method/variable of an external class called in the method of the anonymous inner class to protected. For example, the right to Getnum () will be changed to protected:
protected int getNum() { return 0;}
Pmd-avoid autogenerated methods to access private fields and methods of Inner/outer classes