私はList<Response<? extends Data>>
を持っています。これはJacksonを使ってファイルにシリアライズしています。限定されたタイプのデシリアライズする
どのように私はそれを逆シリアル化できますか?私が得ることができるのはちょうどList.class
で、私には十分ではありません。
この質問にもっとコードが必要な場合は、教えてください。
私はList<Response<? extends Data>>
を持っています。これはJacksonを使ってファイルにシリアライズしています。限定されたタイプのデシリアライズする
どのように私はそれを逆シリアル化できますか?私が得ることができるのはちょうどList.class
で、私には十分ではありません。
この質問にもっとコードが必要な場合は、教えてください。
TypeReference
オブジェクトを使用してジェネリック型をデシリアライズしてみてください。 TypeReference
オブジェクトを使用すると、逆シリアル化するタイプを記述できます。
mapper.readValue(json, new TypeReference<List<Response<? extends Data>>>() {});
この一般的な抽象クラスは、サブクラス化することによって、完全なジェネリックタイプの情報を取得するために使用されます。
'にキャストすることはできません。com.fasterxml.jackson.databind.JsonMappingException:データのインスタンスを構築できません。問題:抽象型は、具体的な型にマップするか、カスタムデシリアライザを持つか、インスタンス化する必要があります追加のタイプ情報を持つ at ... ' – Nati
使用していたserialize APIも、デシリアライズAPIを提供していませんか? –
それはありますが、バインドされた型を動的に逆直列化する方法がわかりません – Nati
あなたのケースでは、直列化されたオブジェクトにキャストする必要があります。データを拡張します。 –