gengdaolu_xiazai 2019-11-05 11:43 采纳率: 0%
浏览 6452
已结题

如何获取java泛型的真实Class类型?

泛型继承自接口
示例 : 想获取泛型 K 和 V 的类型

public class RedisCache<K, V> implements Cache<K, V> {
    public V get(K key) throws CacheException {
        Class value_clazz = ... //想要获取泛型V的真实class
        //...
    }
}

我使用 clazz.getGenericSuperclass的方式获取ParameterizedType但是强转失败

Class clazz = this.getClass() ;
Type gs_type = clazz.getGenericSuperclass();
ParameterizedType pt = (ParameterizedType)gs_type ;

发生以下异常 :

java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType

  • 写回答

3条回答 默认 最新

  • zhshchilss 2019-11-05 17:02
    关注

    图片说明

    图片说明

    评论

报告相同问题?