首頁 > Java > java教程 > 如何為具有動態項目類型的 ArrayList 建立 Gson TypeToken?

如何為具有動態項目類型的 ArrayList 建立 Gson TypeToken?

Susan Sarandon
發布: 2024-12-11 13:45:10
原創
1037 人瀏覽過

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

具有動態ArrayList項類型的Gson TypeToken

在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) 來建立TypeType#getParameterized(Type rawType, Type... typeArguments) 來建立TypeType 具有動態專案類型Token具有動態專案類型Token具有動態專案的列表。解決方案是:

Type typeOfObjectsListNew = TypeToken.getParameterized(ArrayList.class, myClass).getType();
登入後複製

這會為具有指定動態項目類型 (myClass) 的 ArrayList 建立 TypeToken。然後,您可以使用 getType() 檢索用於反序列化的類型資訊。

以上是如何為具有動態項目類型的 ArrayList 建立 Gson TypeToken?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板