簡體   English   中英

Java ArrayList,泛型和后期綁定

[英]Java ArrayList, generics, and late binding

是不是說Java泛型都是后期綁定? 是否在運行時之前忽略了ArrayList <Something>類型?

為什么?

是不是說Java泛型都是后期綁定?

沒有。

是否在運行時之前忽略了ArrayList <Something>類型?

沒有。

為什么?

事實並非如此。

是否在運行時之前忽略了ArrayList <Something>類型?

相反,它是另一種方式。

Java Generics在編譯時被考慮在內。 在運行時,有擦除

  • 在本章的Java在線教程中查找更多詳細信息: Type Erasure “當實例化泛型類型時,編譯器通過稱為類型擦除的技術轉換這些類型 - 編譯器刪除與類型參數相關的所有信息並在其中鍵入參數的過程一個班級或方法......“

泛型和后期綁定彼此之間沒有任何關系。

在運行時不會忽略ArrayList類型。 其通用參數類型通常通過類型擦除被忽略。 這樣做是為了向后兼容。

不,Java泛型不是后期綁定。 但是引用這里的官方Java文檔:

為了實現泛型,Java編譯器將類型擦除應用於:如果類型參數是無界的,則將泛型類型中的所有類型參數替換為其邊界或對象。 因此,生成的字節碼僅包含普通的類,接口和方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM