CitizenF
2017-03-23 07:42
采纳率: 36.4%
浏览 4.2k
已采纳

Java class反射指定实例化泛型类的<T>的问题

现在手里有两个class 一个A(泛型类) 一个B

我想通过实例化泛型类A来为其<.T>指定B这个类型 我该如何操作?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • txl690956710 2017-03-23 09:56
    已采纳

    做不到,泛型只存在于编译过程,编译后就不存在了,泛型的意义就是为了在编译的时候能检查你的数据类型是不是正确。
    如果你想动态实例已个A,为其设置泛型为B 是完全不需要的,就像ArrayList 这个类,其实可以动态的放任何数据,但静态就会编译不通过

    点赞 评论
  • blownewbee 2017-03-23 07:50
     ParameterizedType pt = (ParameterizedType) A.class.getGenericSuperclass();
    Class<T> b = (Class<T>) pt.getActualTypeArguments()[0];
    obj = b.newInstance();
    
    点赞 评论
  • JasonLiao909 2018-09-14 04:33

    上面代码被吃了

    class A<T extends B> { }
    
    点赞 评论

相关推荐 更多相似问题