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];
        }
    }
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐