样例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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; } } |
---|
在匿名内部类的方法里去调用外部类的私有方法或变量就会报这个PMD错误。
可以将匿名内部类的方法里调用到的外部类的私有方法/变量改成protected。以样例来举例,即将getNum()的权限改为protected:
1 2 3 | protected int getNum() { return 0; } |
---|
警告
本文最后更新于 August 23, 2018,文中内容可能已过时,请谨慎使用。