"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment accéder à une instance de classe externe à partir d’une classe interne anonyme en Java ?

Comment accéder à une instance de classe externe à partir d’une classe interne anonyme en Java ?

Publié le 2024-11-10
Parcourir:735

How to Access an Outer Class Instance from an Anonymous Inner Class in Java?

Accès à une instance de classe externe à partir d'une classe interne anonyme

En Java, une classe interne anonyme est une classe imbriquée sans nom explicite. Il est généralement utilisé pour implémenter des gestionnaires d'événements ou pour remplacer des méthodes abstraites dans une classe externe.

Supposons que vous ayez une classe externe nommée a avec une méthode appelée doStuff qui prend un paramètre InnerClass. Dans la classe externe, vous créez une classe interne anonyme en tant que paramètre pour doStuff.

Depuis la classe interne anonyme, vous souhaitez accéder à une méthode de la classe externe, telle que otherMethod. Comment pouvez-vous faire référence à l'instance de classe externe à partir de la classe interne anonyme ?

La réponse réside dans l'utilisation de la syntaxe OuterClass.this. Cette expression vous permet d'accéder à l'instance englobante de la classe externe. Dans votre exemple, pour appeler otherMethod à partir de la classe interne anonyme, vous utiliserez :

a.this.otherMethod();

Cette syntaxe garantit que vous faites référence à l'instance correcte de la classe externe. classe, même s'il existe plusieurs instances de la classe dans la portée.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3