類的【TypeVariable】和變量的【ParameterizedType】


1、參考文章

Java中與泛型相關的接口 之 GenericDeclaration - 簡書

ParameterizedType詳解 - 94me的博客 - CSDN博客

2、在定義類時,通過在尖括號【<>】內使用K、V等作為類型的占位符。在定義變量時,如果用到這個類,就需要為K、V等類型占位符指定明確的類型。這樣就完成從定義到使用的全套操作。

3、尖括號內的K、V等占位符其實就是類的類型變量【TypeVariable】,並且可以通過類的【getTypeParameters】方法獲取。當然類也可以限定只接受某些類型,通過【extends】去限制即可。

clip_image001

4、在聲明這個類型的變量時,就需要為K、V等占位符填上具體的類型,形成類似【Map<String,Long> map1;】的語句。其中map1的類型就是【Map<String,Long>】,那這個類型是類嗎?不是,它是一個組合的類型,【Map】是它的原始類型【RawType】,【<String,Long>】是它的實際參數【ActualTypeArguments】。這個組合類型有一個學名叫做【ParameterizedType】。

5、對於組合類型【Map.Entry<Long,Short>】還有一個【OwnerType】,就是【Map】。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM