У меня есть такой класс:
public class Wrapper {
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 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