0
在java中,如果你有一個類(非靜態的),然後在它內部的一個內部類(也是非靜態的),你如何從內部類獲得對外部類對象的引用?Java從內部類中獲取外部類?
public class Fish {
public class Fin {
Fish fish = _____;
}
}
我想將Fish對象存儲在Fin類的變量fish
中。
有誰知道嗎?
在java中,如果你有一個類(非靜態的),然後在它內部的一個內部類(也是非靜態的),你如何從內部類獲得對外部類對象的引用?Java從內部類中獲取外部類?
public class Fish {
public class Fin {
Fish fish = _____;
}
}
我想將Fish對象存儲在Fin類的變量fish
中。
有誰知道嗎?
您使用
Outer.this
在你的情況
Fish.this
你能解釋爲什麼上課的時候也不是一成不變的,你會使用的類名。另外爲什麼沒有像'super.this'這樣的工作? – omega
@omega'super'指的是超類,而不是包含類,因此在語言設計過程中幾乎可以肯定地拒絕改變它的語義。 'super.this'也有些矛盾 - 你不能試圖從超類的命名空間和當前對象的命名空間同時獲取某些東西。這沒有意義。 – awksp
@omega另外,這裏的類名實際上與靜態/非靜態事物沒有任何關係;它只是一種區分這個內部類和這個包含類的方法,因爲內部類可以訪問包含類的方法。 – awksp