ホームページ >Java >&#&チュートリアル >ジェネリック型の逆シリアル化中の型消去を解決するために Jackson をどのように使用できますか?
複雑なシナリオでは、JSON データを MyRequest< を期待するジェネリック メソッドに逆シリアル化しようとしています。 ;T>タイプ。ただし、Jackson は Java の型消去が原因で、ジェネリック型 T が実行時に保持されないという問題に遭遇しました。その結果、Jackson はネストされた MyRequest
この問題を解決し、T として返される予定の型を指定するには、Jackson に明示的にタイプ情報。これは、getTypeFactory() メソッドとconstructCollectionType() メソッドを使用して JavaType オブジェクトを構築することで実現できます。
<code class="java">JavaType type = mapper.getTypeFactory() .constructCollectionType(List.class, Foo.class);</code>
List.class を、逆シリアル化する予定のリストのタイプ (例: List
JavaType オブジェクトを取得したら、それを使用して JSON データを予想されるジェネリック タイプに逆シリアル化できます。
<code class="java">List<Foo> list = mapper.readValue(new File("input.json"), type);</code>
この明示的な型情報を Jackson に提供すると、ネストされた MyRequest
以上がジェネリック型の逆シリアル化中の型消去を解決するために Jackson をどのように使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。