我有这样的类
class SomeWrapper<T> {
private int code;
private T value;
}
class SomeValue<T> {
private String name;
private T target;
}
因此,我想在Spring中使用RestTemplate发送一些http请求。我需要像这个一样的ParameterizedTypeReference对象
new ParameterizedTypeReference<SomeWrapper<SomeValue>>();
但在我的情况下,SomeValue类的类型是可变的所以我想上一些像Facotry这样的课例如这样(
ParameterizedTypeReference<SomeWrapper<SomeValue>> ptr = SomeFacotory.getParameterizedType(SomaValue.class);
有办法这样做吗?
是的,您可以像这样实例化ParameterizedTypeReference
:
ParameterizedTypeReference<SomeWrapper<SomeValue>> ptr = new ParameterizedTypeReference<SomeWrapper<SomeValue>>() {};
您还可以创建一个静态方法,该方法也将为您创建它,例如:
public static <T> ParameterizedTypeReference<T> getTypeReference() {
return new ParameterizedTypeReference<T>() {};
}
然后称之为:
ParameterizedTypeReference<SomeWrapper<SomeValue>> ptr = getTypeReference()