Jackson - 逆シリアル化にジェネリックを利用する
データ処理の領域では、逆シリアル化はシリアル化されたデータをオブジェクトに変換する際に重要な役割を果たします。人気のある Java ライブラリである Jackson は、ジェネリック クラスを処理する機能など、逆シリアル化の強力なサポートを提供します。
ジェネリック クラスの逆シリアル化
Data などのジェネリック クラスを扱う場合T> (T は型パラメータを表します) では、逆シリアル化には実際の型引数を指定する必要があります。従来のアプローチには Data.class 型の使用が含まれますが、これでは一般的な情報を取得できません。
TypeReference ソリューション
Jackson は、TypeReference クラスを通じてソリューションを提供します。 TypeReference オブジェクトを作成し、ジェネリック型を指定することで、予想される型を Jackson に通知できます。
コード例
Data
class Data<T> { int found; Class<T> hits } public static void main(String[] args) { String jsonString = "..."; ObjectMapper mapper = new ObjectMapper(); Data<String> deserializedData = mapper.readValue(jsonString, new TypeReference<Data<String>>() { }); }
説明
この例では、Data< の TypeReference を作成します。文字列>それを 2 番目の引数として readValue メソッドに渡します。これは、ジェネリック型引数として String を持つ Data オブジェクトを期待するように Jackson に指示します。
以上がJackson の TypeReference は、一般的なクラスの逆シリアル化の問題をどのように解決できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。