Constructor threw exception; nested exception is java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
/**
* 获取泛型T的class类对象
* @return 泛型T的class类对象
*/
public Class<T> getTClass() {
return (Class<T>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
改成使用instanceof
关键字进行强转判断
/**
* 获取泛型T的class类对象,强转判断
* @return 泛型T的class类对象
*/
public Class<T> getTClass() {
Type type = this.getClass().getGenericSuperclass();
if(type instanceof ParameterizedType){
ParameterizedType parameterizedType = (ParameterizedType) type;
Type[] types = parameterizedType.getActualTypeArguments();
return (Class<T>) types[0];
}
}