我被困在Gson
InstanceCreator
中。
我使用List<Map.Entry<Integer, NewRide>> newRideList
将sharedPreference
保存在Gson
中,以后又尝试获取List<Map.Entry<Integer, NewRide>> newRideList
它抛出异常
保存方法:
public void save(List<Map.Entry<Integer, NewRide>> newRideList) {
Gson gson = new Gson();
String json = gson.toJson(newRideList);
editor.putString(NEW_RIDE_ARRAYLIST, json);
editor.commit();
}
获取方法:
public List<Map.Entry<Integer, NewRide>> getListEntries() {
String json = sharedPrefs.getString(NEW_RIDE_ARRAYLIST, null);
if (TextUtils.isEmpty(json)) {
return null;
}
Gson gson=new Gson();
Type type = new TypeToken<List<Map.Entry<Integer, NewRide>>>() {
}.getType();
return gson.fromJson(json,type);
}
我已经经历了几个答案和实现,但是对我来说却行不通。 类似于this,但
显示相同的exception
。
java.lang.RuntimeException:无法为以下参数调用无参数构造函数 java.util.Map $ Entry。注册InstanceCreator 与Gson一起使用可能会解决此问题。造成原因: java.lang.UnsupportedOperationException:接口不能 实例化!接口名称:java.util.Map $ Entry