У меня есть такой класс:
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 , но это не помогло. Есть несколько тем, связанных с моей проблемой и т. Д .: https://jira.springsource.org/browse/SPR-7002 и https://jira.springsource.org/browse/SPR-7023
Есть идеи?
PS: Моя ошибка в том, что:
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to a.b.c.d.Model
Я думаю, что resttemplate не может понять мою универсальную переменную и, возможно, он принимает ее как объект вместо универсального T. Таким образом, он становится LinkedHashMap. Вы можете прочитать из него здесь Это говорит о том, что при объяснении того, к чему он относится:
JSON Тип | Тип Java
объект | LinkedHashMap