Ho il codice seguente. Voglio ottenere l'oggetto di classe esterno utilizzando il quale ho creato l'oggetto di classe interno inner
. Come posso farlo?
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();
// How to get the same outer object which created the inner object back?
OuterClass anotherOuter = ?? ;
if(anotherOuter == outer) {
System.out.println("Was able to reach out to the outer object via inner !!");
} else {
System.out.println("No luck :-( ");
}
}
}
EDIT: Beh, alcuni di voi ragazzi hanno suggerito di modificare la classe interna aggiungendo un metodo:
public OuterClass outer() {
return OuterClass.this;
}
Ma cosa succede se non ho il controllo per modificare la classe interna, quindi (solo per confermare) abbiamo qualche altro modo per ottenere l'oggetto della classe esterna corrispondente dall'oggetto della classe interna?