2016-07-18 26 views
0

gegossen wird wir sind mit dem Rest Vorlage des Federsteges eine Liste von Objekt mit Json Antwort erhalten, hier ist unsere Implementierung:Spring Web's RestTemplate, austauschen. java.util.LinkedHashMap kann nicht auf

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(); 
    } 

Eigentlich können wir die Liste des Objekts wieder erfolgreich , aber die Liste, wenn ich Schleife, dann habe ich die Ausnahme wie:

java.util.LinkedHashMap cannot be cast to XXXX(our entity) 

Es scheint, dass der Frühling nicht das Generic <T> unterstützt. Wenn nicht, warum können wir die Liste noch gut bekommen? Aber kann es nicht loopen.

Antwort

0

Ich habe auch das gleiche Problem mit der generischen Liste und kann keine nette Lösung für sie finden, so dass ich Elemente in foreach oder in einem Lambda Ausdruck loopen kann.

zumindest können Sie Schleife Listenelemente in guter altmodischen Art und Weise:

List<CLASS> responseList = list(CLASS.class, ...); 
    for(int i = 0 ; i< responseList.size(); i++){ 
    CLASS elem = responseList.get(i); 
    ... 
}