Учитывая следующий код:доступа «это» из Java анонимного класса
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()
внутри анонимного класса.
Это разумный способ? Или есть какие-то лучшие способы?
Теперь это нечто совершенно новое для меня. –
Я не знал, что даже эти ключевые слова могут быть дифференцированы так же, как методы и атрибуты. +1 –
Следует отметить, что здесь необходимо указать класс 'Container'. Любой из его предков не будет принят. – velis