Java匿名クラスから「this」にアクセスする 質問する

Java匿名クラスから「this」にアクセスする 質問する

次のコードがあるとします:

public interface Selectable {
  public void select();
}

public class Container implements Selectable {
  public void select() {
  ...
  }
  public void createAnonymousClass() {
    Selectable s = new Selectable() {
      public void select() {
        //see comment below.
      }
    };
  }
}

Container.select()匿名クラスのメソッド内からアクセスしたいのですselect()が、this.select()匿名クラスのselect()メソッドを再度呼び出すことになります。

私の提案は次のとおりです:

コンテナにフィールドを導入する。例:

private Container self = this;

これで、匿名クラス内からContainer.select()呼び出すことでアクセスできるようになりました。self.select()

これは合理的な方法でしょうか?それとももっと良い方法があるのでしょうか?

ベストアンサー1

Container.this.select();

おすすめ記事