3
abstract class Base {
...
  public class Inner {
    private final String ownerClassName;
    public Inner() {
    ...
    }
  }
  public static class Super1 extends Base{
  ...
  }
  public static class Super2 extends Base{
  ...
  }
}

「Super1」や「Super2」など、囲んでいるクラス インスタンスの型Inner.Inner()に設定したいと思います。ownerClassNameこれはどのように行うことができますか?

4

2 に答える 2

9
Base.this.getClass().getName()
于 2012-12-28T17:31:12.863 に答える
2

まず、ownerClassNameからfinalを削除し、プライベートにし、必要に応じてgetメソッドのみを提供します。

次に、コードに従います。

Inner() {
   ownerClassName = Base.this.getClass().getSimpleName();
}
于 2012-12-28T18:03:56.367 に答える