入れ子になったクラスが囲んでいるクラスの静的メンバーと名前を共有している場合、囲んでいるクラスから入れ子になったクラスの静的メンバーにアクセスする方法はありますか? 例えば:
package a;
class a {
static Object b;
static class b {
static Object foo;
}
static Object needAccessToFoo;
static {
// can I access foo?
}
}
クラスb
( member ではなく) は、 (または)b
を介して Type として使用されている場合にアクセスできます。そして、ネストされたクラスのインスタンスを使用して次のようにアクセスできます。a
[b.]b.a
foo
b
static {
[a.][a.]b bar = new b();
needAccessToFoo = bar.foo;
}
ただし、b
はネストされたクラスであり、インナー クラスではないため、 (によって参照されるオブジェクト)foo
のインスタンスを介さずに静的に参照する適切な方法があるかどうか疑問に思う人がいます。言うまでもなく、オブジェクトを介して静的メンバーにアクセスすることは、一般的に悪い習慣として受け入れられています。b
bar