概述
这里的Type指java.lang.reflect.Type, 是Java中所有类型的公共高级接口, 代表了Java中的所有类型. Type体系中类型的包括:数组类型(GenericArrayType)、参数化类型(ParameterizedType)、类型变量(TypeVariable)、通配符类型(WildcardType)、原始类型(Class)、基本类型(Class), 以上这些类型都实现Type接口.
Type 表示的全部类型而每个Class对象表示一个具体类型的实例,如String.class仅代表String类型。由此看来Type与 Class 表示类型几乎是相同的(Class实现接口Type),只不过 Type表示的范围比Class要广得多而已。当然Type还有其他子类。
- 参数化类型(ParameterizedType):有原始类型和具体的类型参数,泛型List
、Map; - 数组类型(GenericArrayType):不是数组String[] 、byte[],而是带有泛型的数组,即T[] ;
- 通配符类型(WildcardType): 指的是<?>, <? extends T>等等
- 原始类型(Class): 不仅仅包含我们平常所指的类,还包括枚举、数组、注解等;
- 基本类型(Class), 也就是我们所说的java的基本类型,即int,float,double等
- 类型变量(TypeVariable):表示类型参数,可以有上界,比如:T extends Number
JDK定义
1 | package java.lang.reflect; |
类结构

ParameterizedType
1 | package java.lang.reflect; |