62,628
社区成员
发帖
与我相关
我的任务
分享public class Demo<T> {
private Class<T> clazz;
public Demo(){
//如何获取T的类型,并将T的类型赋值给clazz
}
} ParameterizedType pt = (ParameterizedType)this.getClass().getGenericSuperclass();
clazz = (Class<T>) pt.getActualTypeArguments()[0];
赞public class Demo<T> {
private Class<T> clazz;
public Demo(Class<T> clazz) {
this.clazz = clazz;
}
}
这是最简单的方法。不要看它好像很傻帽,其实这是java里最正统的方法。因为<T>在运行时是会被抹去的,所以如果你不直接拿到Class<T>的引用,单凭T是拿不到的。