次のコードを考えます:
_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()
メソッドを呼び出します。
私の提案は次のとおりです。
Containerにフィールドを導入します。
_private Container self = this;
_
これで、匿名クラス内からContainer.select()
を呼び出すことでself.select()
にアクセスできます。
これは合理的な方法ですか?または、より良い方法はありますか?
Container.this.select();
Container.this.select()
を記述して、内部クラスと区別できます!