Heim >Java >javaLernprogramm >Wie kann ich in Java von einer inneren Klasse aus auf die Instanz der äußeren Klasse zugreifen?
Abrufen der Instanz der äußeren Klasse aus einer inneren Klasse
Betrachten Sie den folgenden Code, dessen Ziel darin besteht, von einem auf das Objekt der äußeren Klasse zuzugreifen Instanz der inneren Klasse:
public class OuterClass { public class InnerClass { private String name = "Peakit"; } public static void main(String[] args) { OuterClass outer = new OuterClass(); InnerClass inner = outer.new InnerClass(); // Retrieve the outer class instance... OuterClass anotherOuter = ?? ; } }
Zugriff auf die Instanz der äußeren Klasse von innen Klasse
Innerhalb der inneren Klasse können Sie den OuterClass.this-Ausdruck verwenden, um auf die umschließende Instanz zu verweisen. Diese als „Qualified This“ bekannte Technik ermöglicht Ihnen den Zugriff auf Mitglieder der äußeren Klasse aus der inneren Klasse heraus.
public OuterClass getOuter() { return OuterClass.this; }
Zugriff auf die Instanz der äußeren Klasse, ohne die innere Klasse zu ändern
Wenn Sie nicht die Möglichkeit haben, die innere Klasse zu ändern, ist es möglicherweise möglich, über den Zugriff auf die umschließende Instanz auf Paketebene auf die Instanz der äußeren Klasse zuzugreifen Feld, gekennzeichnet durch this$0.
OuterClass outerRef = inner.this;
Zusätzliche Hinweise
Das obige ist der detaillierte Inhalt vonWie kann ich in Java von einer inneren Klasse aus auf die Instanz der äußeren Klasse zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!