gpt4 book ai didi

java - 谷歌 gson fromjson() TypeToken

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:05:24 25 4
gpt4 key购买 nike

我无法理解TypeToken谷歌的 GSON api 的 fromJson方法。下面的代码对我来说理解起来非常复杂......

        Gson gson = new Gson();
ArrayList<ID_Name_Address> al = new ArrayList<ID_Name_Address>();
al = gson.fromJson(json, new TypeToken<List<ID_Name_Address>>(){}.getType());

这里到底发生了什么:new TypeToken<List<ID_Name_Address>>(){}.getType()

这是一个匿名类吗?阐明这段代码。

最佳答案

TypeToken 是一种在运行时获取有关泛型信息的技巧,这要归功于具有完全指定的泛型父类(super class)的类通过反射使该数据可用这一事实。

GSON 用户指南在此处有一个关于序列化/反序列化泛型的部分:https://github.com/google/gson/blob/master/UserGuide.md#TOC-Serializing-and-Deserializing-Generic-Types

为了具体回答您的问题,它创建了一个匿名对象,该对象在其父类(super class)数据中捕获 TypeToken 的泛型。然后通过反射提取该数据,并使用 getType() 将其打包为 Type 实例,以避免由于上述匿名类而导致的内存泄漏。

关于java - 谷歌 gson fromjson() TypeToken,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41184226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com