Maison >Java >javaDidacticiel >Comment puis-je accéder aux méthodes de classe externe à partir d'une classe interne anonyme en Java ?

Comment puis-je accéder aux méthodes de classe externe à partir d'une classe interne anonyme en Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-10 21:26:02243parcourir

How can I access outer class methods from an anonymous inner class in Java?

Accès aux méthodes de classe externe à partir de classes internes anonymes

En Java, il est possible de définir des classes internes anonymes au sein de classes externes. Ces classes internes peuvent accéder aux membres de la classe externe, y compris les méthodes et les champs.

Accès aux méthodes de classe externe

Pour accéder à une méthode de la classe externe au sein d'une classe interne anonyme classe, utilisez la syntaxe OuterClassName.this. Cela vous permet de faire référence à l'instance englobante de la classe externe.

Exemple

Considérez l'extrait de code suivant :

public class OuterClass {
    public void otherMethod() {}  // Method in outer class

    public void doStuff(String str, InnerClass innerClass) {}

    public void method() {
        doStuff("asd", new InnerClass() {
            public void innerMethod() {
                OuterClass.this.otherMethod();  // Calls the outer class method
            }
        });
    }
}

Dans ce Par exemple, la classe interne anonyme InnerClass définie dans la méthode method() peut accéder à la méthode otherMethod() de la OuterClass englobante. Cela se fait en utilisant la syntaxe OuterClass.this.

Remarque : La syntaxe OuterClassName.this peut également être utilisée pour accéder aux champs de la classe externe au sein de classes internes anonymes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn