从现有ParameterizedType创建另一个类的参数化类型

时间:2014-04-16 14:56:08

标签: java generics reflection

考虑这个类结构。

class Class1<T> {
    Class2<T> field1;
}

如果我通过反射有ParameterizedType实例代表Class1<String>,我该如何获取/创建代表ParameterizedType的{​​{1}}实例?

2 个答案:

答案 0 :(得分:1)

ParameterizedType是一个界面。只需编写一个实现它的类(或从Internet复制一些现有的实现),以便它的方法返回你想要的。

答案 1 :(得分:0)

在当前状态下,反射API允许(有限的)检查泛型类型信息。由于无法利用新构建的ParameterizedType,因此首先允许其构建是没有意义的。

如果您正在构建一个接受ParameterizedType并且需要用户构建自己的API,那么您可以考虑转而使用番石榴TypeToken-Class