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 サイトの他の関連記事を参照してください。