當類型信息由於擦除而在運行時不可用時,java編譯器如何知道如何爲泛型集合中的對象提供適當的轉換?Java泛型類型擦除鑄造
1
A
回答
0
按照神諭tutorial
- 如果類型參數是無限的替換泛型類型與他們的界限或對象的所有類型參數。因此,生成的字節碼只包含普通的類,接口和方法。
- 如果需要,插入類型可以保護類型安全。
- 生成橋接方法以保留擴展泛型中的多態性。
所以,你的類文件包含無論是有界類(或)對象,而不是泛型類型。
1
每當你打電話給list.get(foo)
,並且該列表是ArrayList<String>
,那麼get
的結果由調用者轉入String
,而不是被調用者。調用者在編譯時知道結果應該投到什麼地方(一個String
),所以可以將演員插入到那裏。
相關問題
- 1. Java泛型類型擦除
- 2. Java泛型 - 錯誤鑄造泛型類
- 3. java - 鑄造泛型
- 4. Java泛型 - 類型鑄造問題
- 5. 泛型類型鑄造?
- 6. 泛型類型鑄造
- 7. 鑄造泛型和泛型類型
- 8. 鑄造泛型
- 9. 鑄造泛型
- 10. 泛型鑄造
- 11. Java泛型和鑄造
- 12. Java泛型自動鑄造
- 13. Java泛型鑄造<?>
- 14. Java類型擦除擦除我的泛型?
- 15. 爪哇 - 泛型類型 - 類型擦除
- 16. 動態類型鑄造的Java反射/泛型類型
- 17. 鑄造Java對象泛型類型與已知類型參數
- 18. Java類型鑄造
- 19. C#泛型鑄造
- 20. 鑄造,泛型和子類型
- 21. 鑄造泛型類型接口約束
- 22. 鑄造一個泛型類型中HAXE
- 23. 鑄造/拆箱泛型類型
- 24. 使用泛型類型鑄造
- 25. 在c中鑄造泛型類型#
- 26. 在Java中的類型鑄造/鑄造
- 27. 泛型類型擦除ClassCastException異常
- 28. JpaRepository的泛型沒有類型擦除?
- 29. 鑄造泛型類型的非泛型方法
- 30. 類型擦除 - 擴展Java泛型類是非通用
只能在編譯時發生。 – OldCurmudgeon
編譯器在編譯時由_generated_進行強制轉換。他們在運行時_happen_。 – mhsmith