我们正在使用spring web的rest模板获取带有json响应的对象列表,这是我们的实现:
public <T> List<T> list(Class<T> clazz, String uri, Map<String,?> pathVariables, Map<String,Object> requestParams, Object body) {
RestTemplate restTemplate = new RestTemplate();
ParameterizedTypeReference<List<T>> t = new ParameterizedTypeReference<List<T>>() {};
String url = buildUrl(uri, requestParams);
return restTemplate.exchange(url,HttpMethod.GET,null,t,pathVariables).getBody();
}
实际上我们可以成功获取对象列表,但如果我循环列表,那么我得到了例外:
java.util.LinkedHashMap cannot be cast to XXXX(our entity)
Spring似乎不支持Generic <T>
。
如果没有,为什么我们仍能很好地获得清单?但不能循环它。
答案 0 :(得分:0)
我也遇到了与通用列表Spring RestTemplate
相同的问题,并且无法找到一个很好的解决方案,因此我可以在foreach或Lambda表达式中循环元素。
至少你可以用老式的方式循环列表元素:
List<CLASS> responseList = list(CLASS.class, ... );
for(int i = 0 ; i< responseList.size(); i++ ){
CLASS elem = responseList.get(i);
...
}