Дано наступний код:
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