私はそのようなクラスを持っています:
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
何か案は?
PS:私のエラーはそれです:
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to a.b.c.d.Model
resttemplateは私のジェネリック変数を理解できないと思います。おそらく、ジェネリックTではなくオブジェクトとして受け入れます。したがって、LinkedHashMapになります。あなたはそれからここで読むことができますそれはそれがマーシャルするものから説明するときそれは言う:
JSONタイプ| Javaタイプ
オブジェクト| LinkedHashMap