[英]Java ArrayList, generics, and late binding
是不是說Java泛型都是后期綁定? 是否在運行時之前忽略了ArrayList <Something>類型?
為什么?
是不是說Java泛型都是后期綁定?
沒有。
是否在運行時之前忽略了ArrayList <Something>類型?
沒有。
為什么?
事實並非如此。
是否在運行時之前忽略了ArrayList <Something>類型?
相反,它是另一種方式。
Java Generics在編譯時被考慮在內。 在運行時,有擦除 。
泛型和后期綁定彼此之間沒有任何關系。
在運行時不會忽略ArrayList類型。 其通用參數類型通常通過類型擦除被忽略。 這樣做是為了向后兼容。
不,Java泛型不是后期綁定。 但是引用這里的官方Java文檔:
為了實現泛型,Java編譯器將類型擦除應用於:如果類型參數是無界的,則將泛型類型中的所有類型參數替換為其邊界或對象。 因此,生成的字節碼僅包含普通的類,接口和方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.