Java:使用反射创建具有类型参数的对象

时间:2017-10-12 03:51:58

标签: java generics reflection

请考虑以下事项:

class A<T> {
    T t 
}

class B<T> { }

我有一个参数p,我知道它是某种未知泛型类型的A类型。我可以通过以下方式获得A的泛型类型参数:

Type t = ((ParameterizedType)p.getParameterizedType()).getActualTypeArguments()[0];

现在我想构建一个与A具有相同泛型类型的B。我该怎么做?我尝试过以下方法:

B<t> b = new B<>();

Class c = (Class) t; B<c> b = new B<>();

这两个都失败了,错误:我提供给B的类型的未知类型。

我有两个问题:

  1. 我如何在这里建造一个B?
  2. 什么类型的东西是类型参数?因为基于上面它让我相信它不是一个类或一个类型?那是什么?

0 个答案:

没有答案