获取泛型<E>的Class<E> clazz

本文介绍了一种在Java中通过反射获取泛型类的具体类型的方法。通过使用`getGenericSuperclass()`和`getActualTypeArguments()`等API,可以有效地获取到泛型的实际类型参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在我们搭建框架中往往会用到泛型,我们知道泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,代码的重用率高,那么如何获取呢?

public class BaseDao <E> {
	private Class<?> cls;
	public BaseDao() {
		//得到父类的泛型
		Type sType=getClass().getGenericSuperclass();
		//得到实际的类型参数数组
		Type[] generics=((ParameterizedType) sType).getActualTypeArguments();
		 //得到第一个泛型的Class
		cls=(Class<?>) (generics[0]);
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值