得到父类方法中泛型的类型(工具类)

5 篇文章 0 订阅
4 篇文章 0 订阅
public abstract class BaseDaoImpl<T> implements BaseDao<T> {
	private Class<T> clzz;
	
	public BaseDaoImpl(){
		/**
		 * getGenericSuperclass()是获取父类的Class对象
		 * ParameterizedType和Class类是一个意思,而ParameterizedType是jdk1.5出来的,它封装了类的泛型信息
		 */
		//this.getClass()获取到的是子类实例的Class对象,最好的证明方法就是当BaseDaoImpl为abstract权限,this.getClass()还有值
		ParameterizedType type = (ParameterizedType)this.getClass().getGenericSuperclass();
		clzz = (Class<T>)type.getActualTypeArguments()[0];//获取泛型类型,由于泛型可能有多个,所以返回的是个数组类型,我们取第一个泛型类型
	}
}

1.Type和Class表达的是同一个东西,但是Type是jdk1.5才出来的,支持泛型,所以说Type里封装了类的泛型信息

2.由于泛型可以有多个例如  class BaseDaoImpl<A,B,C>  所以

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值