gpt4 book ai didi

java - Gson HashMap> 序列化和反序列化出现错误

转载 作者:行者123 更新时间:2023-12-02 12:09:03 25 4
gpt4 key购买 nike

我想以字符串格式存储一些数据,并再次使用 android 中的 gson 从该字符串中检索对象。

我的存储功能是

public void storeData(HashMap<String, List<String>> data) {
String d = new Gson().toJson(data);
storeToXYZ(d);
}

获取数据函数

public HashMap<String, List<String>> getData() {
String d = getFromXYZ();
// Assume not default data present
if(!d.equals("")) {
Type type = new TypeToken<HashMap<String, List<String>>>(){}.getType();
return new Gson().fromJson(d, type);
}
return null;
}

我在 getData() 函数的这一行遇到错误

return new Gson().fromJson(d, type);

堆栈跟踪

java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to java.util.HashMap

提前致谢。

最佳答案

尝试将HashMap更改为Map:

Type type = new TypeToken<Map<String, List<String>>>(){}.getType();
<小时/>

详细信息:

来自LinkedTreeMap.java :

LinkedTreeMap<K, V> extends AbstractMap<K, V>

AbstractMap 继承自 Map 接口(interface),而不是继承自 HashMap

enter image description here

关于java - Gson HashMap<String, List<String>> 序列化和反序列化出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46682111/

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