Как сделать внешний класс унаследованным от внутреннего class?

Как я могу заставить что-то подобное работать:

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
  }
}

Обходной путь состоит в том, чтобы иметь метод в InnerBase, который возвращает Outer.this и вызывает THAT из производных классов, но есть ли другой способ?

Я в первую очередь хочу расширить InnerBase извне, чтобы улучшить организацию кода, но я мог бы переместить все производные классы во внешний.

8
задан zvrba 27 December 2011 в 06:35
поделиться