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