【发布时间】:2025-12-03 14:20:04
【问题描述】:
在您将其标记为重复之前,我已经看到了类似的问题,并且在我尝试时没有一个解决方案有效!
这是我根据“解决方案”中的答案进行尝试的方法:
保存:
val gson = Gson()
val hiddenUserList: ArrayList<HiddenUserModel> = ArrayList()
hiddenUserList.add(HiddenUserModel(777L, "steveee"))
hiddenUserList.add(HiddenUserModel(888L, "donbimbo"))
val json = gson.toJson(hiddenUserList)
prefs.edit().putString("hiddenUser", json).apply()
到目前为止,我猜它是正确的?
现在当我尝试检索和阅读它时:
if(prefs.getString("hiddenUser", null) != null){
val hiddenUserListBack: ArrayList<HiddenUserModel> = ArrayList()
val gsonBack = Gson()
val jsonBack: String = prefs.getString("hiddenUser", null)!!
val obj: ArrayList<HiddenUserModel> = gsonBack.fromJson(jsonBack, hiddenUserListBack::class.java)
Log.d(tagg, obj[0].nickname + " " + obj[1].nickname)
}
我明白了:
java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to com.website.blaaa.models.HiddenUserModel
这里有什么问题?
我也接受没有 gson 的解决方案,只要它有效并且不包含大量解决方法
【问题讨论】:
-
该错误与共享首选项没有任何关系,您应该查找错误本身:*.com/questions/26203634/…