68 votes

Comment peut-on accéder à "ceci" de la classe externe à partir d'une classe interne?

Est-il possible d'obtenir une référence à this partir d'une classe interne Java?

c'est à dire

 Class outer {

  void aMethod() {

    NewClass newClass = new NewClass() {
      void bMethod() {
        // How to I get access to "this" (pointing to outer) from here?
      }
    };
  }
}
 

89voto

Guillaume Points 6131

Comme ça:

 outer.this
 

32voto

OscarRyz Points 82553

Extérieur

c'est à dire.

 class Outer {
    void aMethod() {
        NewClass newClass = new NewClass() {
            void bMethod() {
                System.out.println( Outer.this.getClass().getName() ); // print Outer
            }
        };
    }
}
 

BTW En Java, les noms de classe commencent par majuscule par convention.

8voto

staticman Points 569

Ajoutez le nom de classe de la classe externe à ceci:

 outer.this
 

2voto

giri Points 6255

oui, vous pouvez utiliser le nom de classe externe avec cela . extérieur.ce

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