gpt4 book ai didi

java - Gson接口(interface)的通用集合

转载 作者:太空宇宙 更新时间:2023-11-04 14:49:00 24 4
gpt4 key购买 nike

我有以下方法 Serializable作为自定义接口(interface):

private <T extends Synchronizable> Collection<T> deserialize(String json, Class<T> type) {
Type collectionType = new TypeToken<ArrayList<T>>(){}.getType();
return new Gson().fromJson(json, collectionType);
}

此方法无法正常工作,因为 Gson 期望类型标记是特定的泛型类型,例如Type collectionType = new TypeToken<ArrayList<Group>>(){}.getType(); (而 Group 实现 Serializable )。

有人知道这个问题的解决方案吗,或者我无法在这个地方使用通用方法,这会很尴尬。

最佳答案

您应该使用您在其中接受的 type 参数,如下所示:

  private <T extends Synchronizable> Collection<T> deserialize(String json, Class<T> type){
Type collectionType = new TypeToken<ArrayList<Class<T>>>(){}.getType();
return new Gson().fromJson(json, collectionType);
}

关于java - Gson接口(interface)的通用集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24038170/

24 4 0
文章推荐: css - Django 和 Apache/mod_wsgi 不呈现 css
文章推荐: html - 如何使用 Perl 提取和格式化在 div 标记中找到的 HTML?
文章推荐: c++ - 在 C++ 中初始化成员实例
文章推荐: javascript - 使用 JavaScript 更改
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com