다음 코드가 주어진다 :
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()
내부 클래스와 구별되도록 쓸 수 있습니다 !