次のコードがあるとします:
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();