次のコードが与えられます:
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()
これは合理的な方法ですか?それとももっと良い方法はありますか?