首頁 > Java > java教程 > 如何在運行時將 Gson TypeToken 與動態 ArrayList 項目類型結合?

如何在運行時將 Gson TypeToken 與動態 ArrayList 項目類型結合?

Patricia Arquette
發布: 2024-12-05 17:16:11
原創
357 人瀏覽過

How to Use Gson TypeToken with Dynamic ArrayList Item Types at Runtime?

運行時具有動態 ArrayList 項目類型的 Gson TypeToken

使用 JSON 時,通常使用 Gson 將 JSON 資料轉換為類型化物件。但是,您可能會遇到這樣的情況:您需要解析的 ArrayList 項目的類型是在執行時使用反射動態決定的。在這種情況下,傳統的 TypeToken 方法可能會達不到要求。

例如,考慮以下程式碼:

Type typeOfObjectsList = new TypeToken<ArrayList<myClass>>() {}.getType();
List<myClass> objectsList = new Gson().fromJson(json, typeOfObjectsList);
登入後複製

此程式碼將 JSON 字串轉換為 myClass 物件清單。但是,如果 ArrayList 的項目類型應該動態決定怎麼辦?

為了實現這一點,您可以利用 Gson 版本 2.8.0 中引入的新功能:TypeToken.getParameterized。此方法可讓您建立具有指定參數化類型的 TypeToken。

使用方法如下:

private <T> Type setModelAndGetCorrespondingList2(Class<T> type) {
    Type typeOfObjectsListNew = TypeToken.getParameterized(ArrayList.class, type).getType();
    return typeOfObjectsListNew;
}
登入後複製

透過傳遞ArrayList 類別和動態項目類型類別類型作為參數對於TypeToken.getParameterized,您可以建立一個TypeToken,它表示具有所需項目類型的ArrayList。然後可以使用這個 TypeToken 作為 Gson.fromJson 的參數,以正確地將 JSON 資料解析為所需的清單類型。

以上是如何在運行時將 Gson TypeToken 與動態 ArrayList 項目類型結合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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