ホームページ > Java > &#&チュートリアル > 動的項目タイプを使用して ArrayList の Gson TypeToken を作成するにはどうすればよいですか?

動的項目タイプを使用して ArrayList の Gson TypeToken を作成するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-11 13:45:10
オリジナル
1006 人が閲覧しました

How to Create a Gson TypeToken for an ArrayList with a Dynamic Item Type?

Gson TypeToken with Dynamic ArrayList 項目型

Gson では、TypeToken は未知の型の型情報を作成するために使用できるユーティリティ クラスです。実行時。これは、JSON 文字列を Java オブジェクトに逆シリアル化するためによく使用されます。

リストを操作する場合、実行時に ArrayList の項目タイプを動的に定義することができます。これはリフレクションを使用して実行できます。

問題:

次のコードは、動的項目タイプのリストの TypeToken を作成しようとします:

private <T> Type setModelAndGetCorrespondingList2(Class<T> type) {
    Type typeOfObjectsListNew = new TypeToken<ArrayList<T>>() {}.getType();
    return typeOfObjectsListNew;
}
ログイン後にコピー

ただし、この方法では、型の不一致により、JSON 文字列をオブジェクトに変換するときに SQLException が発生します。

解決策:

Gson 2.8.0 以降では、TypeToken#getParameterized(Type rawType, Type... typeArguments) を使用して、次の TypeToken を作成できます。動的な項目タイプのリスト。解決策は次のとおりです。

Type typeOfObjectsListNew = TypeToken.getParameterized(ArrayList.class, myClass).getType();
ログイン後にコピー

これにより、指定された動的項目タイプ (myClass) を持つ ArrayList の TypeToken が作成されます。その後、getType() を使用して、逆シリアル化で使用する型情報を取得できます。

以上が動的項目タイプを使用して ArrayList の Gson TypeToken を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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