Java中的Type家族簡單介紹

之前用反射的時候,基本都是Class。最近弄生成接口文檔工具的時候,又接觸了一下ParameterizedType,偶然的機會發現兩者居然有聯繫:頂級的接口都是Type。於是就統一整理下Type家族的東西。

Type是Java編程語言中所有類型的公共高級接口。它們包括原始類型、參數化類型、數組類型、類型變量和基本類型。

  • 原始類型:Class類的實例表示正在運行的Java應用程序中的類和接口。枚舉是一種類,註解是一種接口。每個數組屬於被映射爲Class對象的一個類,所有具有相同元素類型和維數的數組都共享該Class對象。基本的Java類型(boolean、byte、char、short、int、long、float 和 double)和關鍵字void也表示爲Class對象。
  • 參數化類型:ParameterizedType表示參數化類型,如Collection<String>。
  • 數組類型:GenericArrayType表示一種數組類型,其組件類型爲參數化類型或類型變量。
  • 類型變量:TypeVariable是各種類型變量的公共高級接口。
  • 基本類型:就是我們所說的Java的基本類型,即int,float,double等。

此外,WildcardType表示一個通配符類型表達式,如?、? extends Number或? super Integer。 

1、原始類型

Class是Type的一個實現類,屬於原始類型,是Java反射的基礎,對Java類的抽象。

在程序運行期間,每一個類都對應一個Class對象,這個對象包含了類的修飾符、方法、屬性、構造等信息,所以我們可以對這個Class對象進行相應的操作,這就是Java的反射。

2、參數化類型

接口方法:

用法示例: 

3、數組類型

接口方法:

用法示例: 

4、變量類型 

接口方法:

用法示例: 

5、泛型表達式(通配符表達式) 

接口方法: 

用法示例: 

推薦閱讀:https://www.cnblogs.com/linghu-java/p/8067886.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章