无法选择参数化类型 [英] cannot select Parameterized Type
本文介绍了无法选择参数化类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想创建一个休息区以在服务器和客户端之间进行通信.
I want to create a rest to communicate between server and client.
以下给出的构造函数:
public class RestHelper<I, R> {
public RestHelper(String url, I input, Class<R> output){
ResponseEntity<R> responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, output );
}
}
对于普通类型,我可以这样做:
For normal type, I can do:
RestHelper<User, Result> helper = new RestHelper<>(url, user, Result.class);
如何传递通用类型,例如:
How can I pass a generic type, like:
ResultContainData<Boolean>
下面的代码不起作用:
ResultContainData<Boolean> result = new ResultContainData<>();
RestHelper<User, ResultContainData<Boolean>> helper = new RestHelper<>(url, user, (Class<ResultContainData<Boolean>>) ((ParameterizedType) result.getClass().getGenericSuperclass()).getActualTypeArguments()[0]);
我遇到了运行时错误:无法转换为ParameterizedType.
I got a runtime error: cannot cast to ParameterizedType.
推荐答案
我找到了解决方案.
ResultContainData<Boolean> result = new ResultContainData<>();
RestHelper<User, ResultContainData<Boolean>> helper = new RestHelper<>(url, user, (Class<ResultContainData<Boolean>>)result.getClass());
它正在为我工作.我仍在寻找更好的解决方案.
It's working for me. I am still looking for a better solution.
这篇关于无法选择参数化类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文