Mybatis学习笔记之泛型介绍及解析

泛型介绍

我们都知道一个数据类型可以定义很多变量,例如:int a,b,c,d;那有没有一种类型可以定义或代表很多种数据类型呢?这就是泛型出现的原因。泛型简单来说就是数据类型参数化。
java中泛型是在jdk1.5出现的,之所以能出现还要得益于Object对象,因为java中泛型属于伪泛型,采用泛型擦除机制,最终泛型对象都是被Object对象引用。
既然说最终都是Object对象,那为什么还要出现泛型,这不是对此一举吗?因为泛型带来的好处是编译时期检查,可以防止"猫中出现狗"的现象。

jdk中跟泛型有关的接口

type

type是所有类型的父接口,只有一个方法

public interface Type {
   
	//返回描述这个类型的字符串
    String getTypeName() {
   
        return toString();
    }
}

它有四个子接口和一个实现类,实现类是Class,子接口是:ParameterizedType,TypeVariable,WildcardType,GenericArrayType。Class类就不详细介绍,下面介绍其四个子接口。

ParameterizedType参数化的类型

ParameterizedType表示的是泛型被指定为具体数据类型的类型,例如: Map<Cat,Dog>,List<Cat>等等
ParameterizedType中的方法:

public interface ParameterizedType extends Type {
   
	//获取实际的类型参数,例如List<Cat>中的Cat的Class对象
    Type[] getActualTypeArguments();
	//获取原生类型,例如List<Cat>中的List的Class对象
    Type getRawType();
	//获取拥有者类型,指的是这个类或者接口是定义在另一个类或者接口的内部的
	//例如Map中的Entry接口,获取到的类型就是Map的Class对象,如果是顶层类则返回的是null
    Type getOwnerType();
}

TypeVariable类型变量

TypeVariable表示的是原始的泛型信息
TypeVariable中的方法:

public interface TypeVariable<D extends GenericDeclaration> extends Type, AnnotatedElement {
   

	
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值