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

如何获取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
    关注

    图片说明

    图片说明

    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献