Java 类型泛型作为 GSON 的参数

新手上路,请多包涵

在 GSON 中获取你所做的对象列表

Gson gson = new Gson();
Type token = new TypeToken<List<MyType>>(){}.getType();
return gson.fromJson(json, token);

它工作得很好,但我想更进一步,让 MyType 参数化,这样我就可以有一个通用函数来用这段代码解析对象列表

// the common function
public <T> List<T> fromJSonList(String json, Class<T> type) {
  Gson gson = new Gson();
  Type collectionType = new TypeToken<List<T>>(){}.getType();
  return gson.fromJson(json, collectionType);
}

// the call
List<MyType> myTypes = parser.fromJSonList(jsonString, MyType.class);

遗憾的是返回一个 StringMaps 数组,而不是类型。 T 被解释为另一种通用类型,而不是我的类型。任何解决方法?

原文由 Rodrigo Asensio 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 446
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题