С учетом следующего кода:
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() из анонимного класса.
Это разумный способ? Или есть ли лучшие способы?