是否可以从Java内部类中获取对this
的引用?
即
class Outer {
void aMethod() {
NewClass newClass = new NewClass() {
void bMethod() {
// How to I get access to "this" (pointing to outer) from here?
}
};
}
}
答案 0 :(得分:84)
您可以像这样访问外部类的实例:
Outer.this
答案 1 :(得分:29)
Outer.this
即
class Outer {
void aMethod() {
NewClass newClass = new NewClass() {
void bMethod() {
System.out.println( Outer.this.getClass().getName() ); // print Outer
}
};
}
}
BTW在Java类名称中按惯例以大写开头。
答案 2 :(得分:6)
将外层类的名称添加到此:
outer.this
答案 3 :(得分:1)
是的,你可以使用这个的外部类名。 的 outer.this 强>
答案 4 :(得分:0)
其他:将内部类声明为“静态”时是不可能的。