ฉันมีรหัสต่อไปนี้ inner
ฉันต้องการที่จะได้รับถือของวัตถุชั้นนอกใช้ที่ฉันสร้างวัตถุชั้นด้านใน ฉันจะทำมันได้อย่างไร
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 :-( ");
}
}
}
แก้ไข:ก็มีพวกคุณบางคนแนะนำให้แก้ไขชั้นในโดยการเพิ่มวิธีการ:
public OuterClass outer() {
return OuterClass.this;
}
แต่ถ้าฉันไม่สามารถควบคุมการแก้ไขชั้นในแล้ว (เพื่อยืนยัน) เรามีวิธีอื่นในการรับวัตถุชั้นนอกที่สอดคล้องกันจากวัตถุชั้นในหรือไม่