0
我想製作一個通用的方法,用於將任何類型的列表保存到SharedPreference。在SharedPreference中保存列表的普通類型
public static List<T extends Object> readAnyTypeOfList<T>() {
Gson gson = new Gson();
return (gson.fromJson(SharedPref.read("anyTypeOfList", "[]"),
new TypeToken<List<T>>() {
}.getType()));
}
以及保存列表
public static void saveAnyTypeOfList(List<T> value) {
Gson gson = new GsonBuilder().create();
JsonArray jsonArray = gson.toJsonTree(value).getAsJsonArray();
SharedPref.save("anyTypeOfList", jsonArray.toString());
}
的任何類型,但都methdos給錯誤。 什麼是創建通用方法的正確方法。我也曾嘗試this
這裏工作的例子是
public static ListOfModel = "ListKey"
public static List<ModelClass> readListOfModel() {
Gson gson = new Gson();
return (gson.fromJson(SharedPref.read(ListOfModel, "[]"),
new TypeToken<List<ModelClass>>() {
}.getType()));
}
public static void saveListOfModel(List<ModelClass> value) {
Gson gson = new GsonBuilder().create();
JsonArray jsonArray = gson.toJsonTree(value).getAsJsonArray();
SharedPref.save(ListOfModel, jsonArray.toString());
}
是這種方法gson.toJsonTree(值).getAsJsonArray() ;必須。或simpy調用gson.toString()足以保存列表 – Nepster
@Nepster我想你也可以調用'gson.toJson(value)'返回json字符串。 –