J'ai le code suivant. Je veux mettre la main sur l'objet de classe externe à l'aide duquel j'ai créé l'objet de classe interne inner
. Comment puis-je le faire?
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: Eh bien, certains d'entre vous ont suggéré de modifier la classe interne en ajoutant une méthode:
public OuterClass outer() {
return OuterClass.this;
}
Mais que se passe-t-il si je n'ai pas le contrôle pour modifier la classe interne, alors (juste pour confirmer) avons-nous une autre façon d'obtenir l'objet de classe externe correspondant à partir de l'objet de classe interne?