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