回答
只是一個猜測,但我認爲它有事情做與m
是一個接口引用。如果將其更改爲ArrayList m = new ArrayList();
,則會顯示編譯時錯誤。
我認爲類型必須相關。
Number是一個類(抽象),List是一個接口,所以它們可以通過另一個類相關聯。
所以在技術上你可以有
class Foo extends Number implements List
{
...
}
和
Number k = ... ; //
List m = new Foo();
m = (List) k;
可能是合法的,並沒有異常,如果k被指向與Foo
兼容的類型將運行。
因此,如果您通過接口引用對象,則解析會延遲到運行時。
這很有道理。 – 2011-04-05 02:27:11
它應該是'class MyFooImpl擴展MyFoo {}'而不是'class MyFooImpl {}'嗎?無論如何,所有編譯時錯誤都是賦值給類類型引用的地方。 – 2011-04-05 16:53:41
我發現了與C#一起工作的類似行爲。 – 2011-04-05 16:56:11
- 1. 在Java中鑄造參考變量
- 2. 帶超類的java鑄造參考
- 3. 明確鑄造問題
- 4. 靜態鑄造至(派生類參考)
- 5. 不正確的值從運算符鑄造參考
- 6. 鑄造在Java
- 7. 參考Java中構造
- 8. 在Java中的類型鑄造/鑄造
- 9. 鑄造輸入參數正確類型
- 10. 鑄造到java中的通用參數
- 11. Java - 鑄造產生的對象是否具有與鑄造對象相同的參考值?
- 12. Java變量鑄造
- 13. Java鑄造陣列
- 14. Java通用鑄造
- 15. Java鑄造(動態)
- 16. Android Java類鑄造
- 17. Java鑄造轉換?
- 18. 在Java中鑄造
- 19. Java類型鑄造
- 20. 爪哇構造:參考MyCalendarItem是不明確的
- 21. 確定對象的鑄造
- 22. 鑄造vs參數傳遞
- 23. 鑄造和參數警告
- 24. 鑄造發件人參數
- 25. Java多態性鑄造
- 26. 鑄造的Java規則
- 27. 在JAVA中鑄造問題
- 28. Java泛型自動鑄造
- 29. 鑄造超類的Java
- 30. Java的鑄造接口類
您的Number類是否來自java.lang包? – secmask 2011-04-05 03:33:02