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

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

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

3个回答

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

 ParameterizedType pt = (ParameterizedType) A.class.getGenericSuperclass();
Class<T> b = (Class<T>) pt.getActualTypeArguments()[0];
obj = b.newInstance();

上面代码被吃了

class A<T extends B> { }
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐