interface Test {
public void test();
}
public class TestMain {
private String h = "AAA";
public static void main(String[] args) {
TestMain t = new TestMain();
}
public TestMain() {
Test t = new Test() {
public void test() {
System.out.println(h);
}
};
t.test();
}
}
上面的源代码运行良好。Java匿名类和可访问私有变量
但我认为变量'h'应该从匿名类无法访问。 我需要知道它为什么运作良好。
感谢您提前给予您的所有帮助!
静态嵌套类可以访问封闭类的私有静态成员。 –
这是正确的,我的意思是“不能访问封闭类的非静态成员” – PaganSensei
@SandeepRajeev:仍然不正确。给定一个封闭类的实例 - 也就是说,如果它接收一个作为方法参数,或者创建它自己的一个 - 静态嵌套类可以访问该实例的私有成员。 –