From outside the inner class, I believe that there is no way to refer to the inner instance of the class to refer to members of the outer instance of the class. From within a non-static inner class, you can, of course, reference them using the Outer.this.* Syntax.
Think of it this way: the inner class is actually a completely separate class. It has a compiler-generated field (usually called something strange, like this$0 ). Inside the inner class, the language allows you to reference this field using Outer.this ; however, that syntactic sugar is not available outside the innermost class. Also, the compiler is not generated.
Ted hopp
source share