2012-07-25 85 views

回答

3

你無法施展任意類型的任何對象的任何其他任意類或接口類型。

鑄造(從一個非原始型到另一種非原語類型)沒有做任何魔術自動轉換。當你施放A類型的對象鍵入B,它的意思是,你告訴編譯器「的樣子,我有A類型的一些對象在這裏,我要你把它當作如果它是一個B;不給我一個類型錯誤,因爲我知道更好「。

類型檢查仍將進行,但在運行時,而不是編譯時。如果在運行時,對象不是B,您將得到ClassCastException

假設你正在談論java.lang.Class類,則沒有,你可以不投,要IJavaElement(無論是來自),因爲IJavaElement就不是一個超類,也不由java.lang.Class實現的接口。如果您嘗試執行演員製作,則在運行程序時將獲得ClassCastException

+0

謝謝,我相信。 IJavaElement來自Eclipse JDT。但是,如果A類實現接口。然後你得到A.getClass()instanceof接口,這應該是正確的? – jantox 2012-07-25 08:42:29

+0

垃圾。 Interface的一個instanceof可以工作,但不能用A.getClass()。 – jantox 2012-07-25 08:48:36