[java] 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()하여 액세스 할 수 있습니다 .

이것이 합리적인 방법입니까? 아니면 더 좋은 방법이 있습니까?



답변

Container.this.select();


답변

당신은 Container.this.select()내부 클래스와 구별되도록 쓸 수 있습니다 !


답변