次のコードがあるとします:
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()
。
これは合理的な方法ですか?それとももっと良い方法がありますか?
this
メソッドや属性のようにキーワードを区別できることを知りませんでした。+1