How can "this" of the outer class be accessed from an inner class?
Is it possible to get a reference to this
from within a Java inner class?
i.e.
class Outer {
void aMethod() {
开发者_运维百科 NewClass newClass = new NewClass() {
void bMethod() {
// How to I get access to "this" (pointing to outer) from here?
}
};
}
}
You can access the instance of the outer class like this:
Outer.this
Outer.this
ie.
class Outer {
void aMethod() {
NewClass newClass = new NewClass() {
void bMethod() {
System.out.println( Outer.this.getClass().getName() ); // print Outer
}
};
}
}
BTW In Java class names start with uppercase by convention.
Prepend the outer class's class name to this:
outer.this
yes you can using outer class name with this. outer.this
Extra: It is not possible when the inner class is declared 'static'.
精彩评论