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