如何从内部类访问外部类的“ this”?

是否有可能从 Java 内部类中获得对 this的引用?

也就是说。

class Outer {


void aMethod() {


NewClass newClass = new NewClass() {
void bMethod() {
// How to I get access to "this" (pointing to outer) from here?
}
};
}
}
25093 次浏览

您可以像下面这样访问外部类的实例:

Outer.this

将外部类的类名添加到:

outer.this

是的,你可以在 这个中使用外部类名。 外面,这个

外面,这个

也就是说。

class Outer {
void aMethod() {
NewClass newClass = new NewClass() {
void bMethod() {
System.out.println( Outer.this.getClass().getName() ); // print Outer
}
};
}
}

在 Java 中,类名按照约定以大写开头。

附加: 当内部类被声明为“ static”时是不可能的。