Compte tenu du code suivant:
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.
}
};
}
}
Je veux accéder à Container.select()
partir de la select()
méthode de ma classe anonyme . Cependant, this.select()
j'appellerais à nouveau la select()
méthode de la classe anonyme .
Ma suggestion serait:
Introduisez un champ dans Container, par exemple
private Container self = this;
Maintenant, je peux accéder Container.select()
en appelant self.select()
depuis la classe anonyme.
Est-ce une manière raisonnable? Ou y a-t-il de meilleures façons?
this
mots - clés pouvaient être différenciés comme le peuvent les méthodes et les attributs. +1Container
classe Exactly ici. Aucun de ses ancêtres ne sera accepté.Vous pouvez écrire
Container.this.select()
à distinct de la classe interne!la source