我们有个PO,长这样:
public class MyPO<T> implements java.io.Serializable{
private List<T> data = new ArrayList<T>();
}结果用RestTemplate.getForObject 后,不管这个T是什么,接收到都被转化为LinkedHashMap,造成ClassCastException。
上网查,在这篇找到关键信息(这是百度快照):
You can refactor the code above to use exchange instead of postForObject, and use ParameterizedTypeReference to get a List<MyModelClass> .
For example:
ParameterizedTypeReference<List<MyModelClass>> typeRef = new ParameterizedTypeReference<List<MyModelClass>>() {
};
ResponseEntity<List<MyModelClass>> responseEntity = restTemplate.exchange(url, HttpMethod.POST, new HttpEntity<>(mvm), typeRef);
List<MyModelClass> myModelClasses = responseEntity.getBody();结果使用RestTemplate. exchange 代替 getForObject 后,问题确实解决了。版权声明:本文为amosryan原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。