如何使外部类继承自内部类?

zvr*_*rba 8 java inner-classes

我怎样才能做出类似这样的工作:

class Outer {
  int some_member;

  abstract class InnerBase {
    abstract void method();
  }
}

class OuterExtendsInner extends Outer.InnerBase {
  OuterExtendsInner(Outer o) { o.super(); }
  void method() {
    // How do I use some_member here?
    // Writing Outer.this.some_member -> error about Outer not being an enclosing class
    // Writing just some_member -> no-go, either
  }
}
Run Code Online (Sandbox Code Playgroud)

解决方法是在InnerBase中有一个返回Outer.this并从派生类调用THAT的方法,但还有另一种方法吗?

我主要想从外部扩展InnerBase以获得更好的代码组织,但我可以将所有派生类移动到外部.

Paŭ*_*ann 3

这里的问题是链接InnerBase到的合成字段Outer是私有字段。因此,我们只能从内部访问外部对象InnerBase,或者那里的某些方法或字段提供对同一对象的引用。