Java内部クラス内からthis
への参照を取得することは可能ですか?
つまり.
class Outer {
void aMethod() {
NewClass newClass = new NewClass() {
void bMethod() {
// How to I get access to "this" (pointing to outer) from here?
}
};
}
}
次のようにして、外部クラスのインスタンスにアクセスできます。
Outer.this
Outer.this
すなわち。
class Outer {
void aMethod() {
NewClass newClass = new NewClass() {
void bMethod() {
System.out.println( Outer.this.getClass().getName() ); // print Outer
}
};
}
}
ところで、Javaクラス名は慣例により大文字で始まります。
これに外部クラスのクラス名を追加します:
outer.this
はいthisで外部クラス名を使用できます。 outer.this
追加:内部クラスが「静的」と宣言されている場合は不可能です。