具有 Spring RESTTemplate 的泛型
2022-08-31 11:57:58
我有一个这样的类:
public class Wrapper<T> {
private String message;
private T data;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
我使用 resttemplate,如下所示:
...
Wrapper<Model> response = restTemplate.getForObject(URL, Wrapper.class, myMap);
Model model = response.getData();
...
但是,它抛出了一个:
ClassCastException
我读到:尝试在java中使用Jackson时出现问题,但没有帮助。有一些与我的问题相关的主题等:https://jira.springsource.org/browse/SPR-7002 和 https://jira.springsource.org/browse/SPR-7023
有什么想法吗?
附言:我的错误是:
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to a.b.c.d.Model
我认为 resttemplate 无法理解我的泛型变量,也许它接受它作为对象而不是泛型 T。所以它变成了一个LinkedHashMap。你可以从这里读到它说,当解释从它元帅到什么时:
JSON 类型 |Java 类型
对象|LinkedHashMap