mybatis之Type类

Type类

  • type类是所有类型的父接口,它由四个子接口和一个实现类
    在这里插入图片描述

  • 下面来看这些子接口和子类所代表的类型。

  • Class类比较常见,它表示的是原始类型。Class类表示的是JVM中的一个类或者接口。每个java类在JVM中都表现为一个Class对象。在程序中可以通过类名.class或者对象.getClass()或者是Class.forName(全限定类名)来获取Class对象。数组也也被映射为Class对象,所有元素类型相同并且维数相同的数组都共享一个Class对象。

  • ParameterizedType 表示的参数化类型,例如List,Map<String,Integer>,Servie等。

ParameterizedType接口中常用的方法有3个,分别是:
getRawType() -- 返回参数化类型中的原始类型,如List<String>返回的是List

getActualTypeArguments() -- 一获取参数化类型的类型变量或是实际类型列
表,例如 Map<Integer, String> 的实际泛型列表 Integer String 。需要注意的是,
该列表的元素类型都是Type,也就是说,可能存在多层嵌套的情况。

getOwnerType() -- 返回是类型所属的类型,例如存在A<T>类,其中定义了
内部类InnerA<I> ,则 InnerA<I> 所属的类型为 A<T>,如果是顶层类型则返回 null
这种关系比较常见的示例是 Map<K,V>接口与 Map.Entry<K,V>接口 Map<K,V>
接口是 Map.Entry<K,V>接口的所有者。
  • TypeVariable表示的是类型变量,他用来表示JVM编译该泛型前的信息,例如List中的T就是类型变量,它在编译时需要转化成一个具体的变量才能正常使用。该接口有三个方法
Type[] getBounds() -- 获取类型变量的上边界,如果未明确声明上边界则默认为
Object 例如class Test<K extends Person>的上界就是Person

D getGenericDeclaration()一一获取声明该类型变量的原始类型,例如 class Test<K 
extends Person>中 的原始类型是 Test。

String getNameO一一获取在源码中定义时的名字,上例中为K。
  • GenericArrayType表示的数组类型且成员组成类型是ParameterizedType或者TypeVariable类型,例如List<String[]>或者T[].该接 口只有 Type getGenericComponentType() 一个方法,它返回数组的组成元素。
  • WildcardType表示的是通配符泛型,例如? extends Person,? super Integer,它有两个方法
Type[] getUpperBounds()一一返回泛型变量的上界
Type[] getLowerBounds()一-返回泛型变量的下界

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值