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

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