198 votes

Mot clé pour la classe externe à partir d'une classe interne anonyme

Dans l'extrait suivant :

public class a {
    public void otherMethod(){}
    public void doStuff(String str, InnerClass b){}
    public void method(a){
        doStuff("asd",
            new InnerClass(){
                public void innerMethod(){
                    otherMethod();
                }
            }
        );
    }
}

Existe-t-il un mot-clé permettant de se référer à la classe externe à partir de la classe interne ? En gros, ce que je veux faire, c'est outer.otherMethod() ou quelque chose du genre, mais je n'arrive pas à trouver quoi que ce soit.

335voto

Bill the Lizard Points 147311

En général, vous utilisez OuterClassName.this pour faire référence à l'instance englobante de la classe externe.

Dans votre exemple, ce serait a.this.otherMethod()

44voto

jjnguy Points 62123
OuterClassName.this.outerClassMethod();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X