当嵌套类与封闭类的静态成员共享名称时,有什么方法可以从封闭类访问嵌套类的静态成员?例如:
package a;
class a {
static Object b;
static class b {
static Object foo;
}
static Object needAccessToFoo;
static {
// can I access foo?
}
}
当通过(或)用作类型时,可以访问类b
(与成员相反)。并且可以使用嵌套类的实例来访问,如下所示:b
a
[b.]b.a
foo
b
static {
[a.][a.]b bar = new b();
needAccessToFoo = bar.foo;
}
然而,由于b
它是一个嵌套类而不是一个内部类,它让人怀疑是否有一种适当的方法来静态引用foo
而不通过b
(引用的对象bar
)的实例。更不用说通过对象访问静态成员通常被认为是不好的做法。