62,635
社区成员




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是拿不到的。