ホームページ > Java > &#&チュートリアル > Gson でジェネリックリストを逆シリアル化するにはどうすればよいですか?

Gson でジェネリックリストを逆シリアル化するにはどうすればよいですか?

DDD
リリース: 2024-12-15 06:09:14
オリジナル
938 人が閲覧しました

How to Deserialize a Generic List with Gson?

Gson を使用したジェネリック リストの逆シリアル化

Gson を使用してリスト オブジェクトを転送する場合、ジェネリック型を扱うときに問題が発生する可能性があります。この記事では、Gson を使用して汎用リストを逆シリアル化するための包括的なガイドを提供します。

問題:
新しい List().getClass() を使用してリストを逆シリアル化しようとすると、エラーまたは多数の方法による複雑な修正stubs.

解決策:
ジェネリック リストを正しく逆シリアル化するには、次のように TypeToken クラスを使用します。

Type listType = new TypeToken<List<MyClass>>() {}.getType();
MyClass mc = new Gson().fromJson(result, listType);
ログイン後にコピー

このアプローチでは、getClass が不要になります。 () 呼び出しにより、より簡潔で効果的なメッセージが提供されます。

説明:
TypeToken はコンパイル時にジェネリック型をキャプチャします。インスタンス化中に作成される匿名サブクラスにより、Gson の fromJson メソッドに渡されるときに正しい型情報が維持されることが保証されます。これにより、ジェネリック リストの適切な逆シリアル化が保証されます。

追加メモ:

  • Type オブジェクトは、ジェネリック型のパラメータ化されたインスタンス化を含む、任意の Java 型を表すことができます。型消去の制限。
  • TypeToken はコンパイル時に完全に既知の型をキャプチャする必要があります。ジェネリック型パラメータをキャプチャすることはできません (新しい TypeToken>() {}.getType() は許可されていません)。
  • TypeToken クラスの使用方法を詳しく理解するには、その文を参照してください。

以上がGson でジェネリックリストを逆シリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート