在Gson中为java.util.Map $ Entry

时间:2018-07-23 13:58:22

标签: java android gson

我被困在Gson InstanceCreator中。

我使用List<Map.Entry<Integer, NewRide>> newRideListsharedPreference保存在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

0 个答案:

没有答案