回答
只是一個猜測,但我認爲它有事情做與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. 更改使用dynamic_cast鑄造參考相比鑄造指針
- 5. 鑄造在.NET參考源到對象
- 6. 鑄造參考vs使用新(ArrayList)
- 7. 靜態鑄造至(派生類參考)
- 8. 鑄造泛型然後使用參考
- 9. 不正確的值從運算符鑄造參考
- 10. 多態性和明確鑄造
- 11. 在openCL中的明確鑄造
- 12. 鑄造在Java
- 13. 參考Java中構造
- 14. 在Java中的類型鑄造/鑄造
- 15. Java的鑄造和C++的鑄造
- 16. 鑄造輸入參數正確類型
- 17. 鑄造到java中的通用參數
- 18. Java - 鑄造產生的對象是否具有與鑄造對象相同的參考值?
- 19. Java通用鑄造
- 20. Java鑄造對象
- 21. 在Java中鑄造
- 22. java - 鑄造泛型
- 23. Android Java類鑄造
- 24. Java變量鑄造
- 25. Java鑄造轉換?
- 26. Java鑄造陣列
- 27. Java對象鑄造
- 28. Java - 鑄造一套
- 29. Java鑄造(動態)
- 30. Java類型鑄造
您的Number類是否來自java.lang包? – secmask 2011-04-05 03:33:02