Heim > Java > javaLernprogramm > Hauptteil

Wie können Sie innerhalb einer anonymen inneren Klasse auf Methoden der äußeren Klasse zugreifen?

Susan Sarandon
Freigeben: 2024-11-11 16:43:02
Original
201 Leute haben es durchsucht

How can you access methods from the outer class within an anonymous inner class?

Zugriff auf die äußere Klasse von einer anonymen inneren Klasse aus

Im bereitgestellten Codeausschnitt:

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();
                }
            }
        );
    }
}
Nach dem Login kopieren

Die Frage entsteht: Können wir von der anonymen inneren Klasse aus direkt auf die Methoden der äußeren Klasse zugreifen?

Lösung: Verwenden von OuterClassName.this

Um innerhalb einer anonymen inneren Klasse auf die äußere Klasse zu verweisen, verwenden Sie die Syntax OuterClassName.this. In diesem Beispiel würden Sie zum Aufrufen der otherMethod()-Methode der äußeren Klasse a a.this.otherMethod() verwenden.

Daher wäre die vollständige Version der innerMethod()-Methode:

public void innerMethod(){
    a.this.otherMethod();
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie können Sie innerhalb einer anonymen inneren Klasse auf Methoden der äußeren Klasse zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage