在Java中,有没有办法明确阻止匿名类引用外部类或方法的成员/局部变量?
答案 0 :(得分:1)
没有。您总是在其他类中定义匿名类,例如
class A {
private String aMember;
public void test() {
B b = new B() {
@Override
public void b() {
...
}
};
}
}
您始终可以使用OuterClassName.this.something
访问外部类:
@Override
public void b() {
A.this.aMember = "Hello";
}
为什么要限制对外部类的访问?一旦我们知道了,我们就能更好地理解你想要实现的目标。