NO.94 RestTemplate.getForObject将PO中List<T>的泛型变成LinkedHashMap问题的解决

我们有个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  后,问题确实解决了。

猜你喜欢

转载自blog.csdn.net/amosryan/article/details/54019479
94