2016-07-18 3 views
0

にキャストすることはできません私たちは、JSONレスポンスを持つオブジェクトのリストを取得し、スプリングウェブの残りのテンプレートを使用している、ここに私たちの実装です:Spring WebのRestTemplate、交換。 java.util.LinkedHashMapは

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) 

春のジェネリック<T>をサポートしていないようです:が、私ループリストなら、私のような例外が発生しました。 もしそうでなければ、なぜ我々はまだよくリストを得ることができますか?しかし、それをループすることはできません。

答えて

0

また、genericリストと同じ問題があります。foreachまたはラムダ式で要素をループできるように、いい解を見つけることができません。

少なくともすることができます良い昔ながらの方法でループリスト要素:

List<CLASS> responseList = list(CLASS.class, ...); 
    for(int i = 0 ; i< responseList.size(); i++){ 
    CLASS elem = responseList.get(i); 
    ... 
} 
関連する問題