次のように、汎用メソッドにjackson jsonライブラリを使用したいと思います。
public MyRequest<T> tester() {
TypeReference<MyWrapper<T>> typeRef = new TypeReference<MyWrapper<T>>();
MyWrapper<T> requestWrapper = (MyWrapper<T>) JsonConverter.fromJson(jsonRequest, typeRef);
return requestWrapper.getRequest();
}
...
public class MyWrapper<T> {
private MyRequest<T> request;
public MyRequest<T> getRequest() {
return request;
}
public void setRequest(MyRequest<T> request) {
this.request = request;
}
}
public class MyRequest{
private List<T> myobjects;
public void setMyObjects(List<T> ets) {
this.myobjects = ets;
}
@NotNull
@JsonIgnore
public T getMyObject() {
return myobjects.get(0);
}
}
ここで問題は、リクエストオブジェクトの内部にあるgetMyObject()を呼び出すと、入れ子になったカスタムオブジェクトがLinkedHashMapとして返されることです。Tオブジェクトを返す必要があることを指定する方法はありますか?たとえば、タイプがCustomerのオブジェクトを送信した場合、Customerはそのリストから返されますか?。
ありがとう。
GETT()の実装を追加してください
—
ジム・ギャリソン
この質問はstackoverflow.com/questions/6062011/…に似ていますが、TypeFactoryを使用してタイプを指定することを提案しています。ただし、コンパイル時にタイプがわかりません...
—
techzen
TypeFactoryには、静的クラスを必要としないメソッドがあります。createCollectionTypeなど。
—
StaxMan 2011
完全なコードを共有してください。私も同じ問題に直面しています。
—
AZ_ 2013年
TypeReference
抽象的ではありませんか?