我见过很多关于访问封闭类的私有成员的问题。然而,我的问题恰恰相反。
如果我有(例如),下面的代码:
public class A {
private String outerString = "silly string";
static class B {
private final A someA = new A();
public void foo() {
String b = someA.outerString ;
}
}
}
我想知道为什么会编译?由于我从 A 类(通过 someA.outerString)访问“outerString”实例变量的方式,我会预料到会出现错误。我知道内部类可以通过隐式“this”引用直接访问封闭类成员。但是在这里,B 类是静态的,所以“this”引用不适用。