首页 >Java >java教程 >如何使用 TypeToken 反序列化 Gson 中的泛型集合?

如何使用 TypeToken 反序列化 Gson 中的泛型集合?

Linda Hamilton
Linda Hamilton原创
2024-12-07 03:57:19753浏览

How to Deserialize Generic Collections in Gson Using TypeToken?

使用 Gson 反序列化通用集合

您希望使用 Google Gson 反序列化列表对象,但遇到了以下挑战:泛型类型。

替代方法

您遇到的错误表明 new List() {} 没有实现继承的抽象方法。相反,您可以使用 TypeToken 在运行时指定泛型类型:

Type listType = new TypeToken<List<MyClass>>() {}.getType();
MyClass mc = new Gson().fromJson(result, listType);

异常处理

您遇到的 NullPointerException 表明列表类型不是格式正确。检查以下内容:

  • 确保结果不为空。
  • 调试 listType 以验证参数化类型设置是否正确。

TypeToken 说明

TypeToken 类允许您在编译时捕获泛型类型并将它们表示为运行时类型。它的匿名子类封装了具体的类型信息,使得Gson能够正确反序列化对应的对象。

未来参考开发人员

  • https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/TypeToken.html
  • https://stackoverflow.com/questions/12112101/gson-and-multiple-type-parameters-in-generic-class

以上是如何使用 TypeToken 反序列化 Gson 中的泛型集合?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn