将自定义对象添加到tinyDB

时间:2018-01-06 08:57:48

标签: android object casting type-conversion

tinydb.putListObject(String,java.util.ArrayList<java.lang.Object>)想要一个对象,但我想存储餐馆对象。我该如何解决?

ArrayList<Restaurant> restaurants = new ArrayList<>();

// This part gives error.
tinydb.putListObject("restaurantsObject",restaurants);

之后,我需要将它转换为不同类别的餐馆对象。

ArrayList<Restaurant> restaurants = new ArrayList<>();

restaurants = tinydb.getListObject("restaurantsObject", Restaurant.class);

另外,如果你知道我的结构的简单缓存方法,你可以与我分享。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我用gson存储它。

 Gson gson = new Gson();
 ArrayList<String> gsonString = new ArrayList<>();
 for(int i=0; i<restaurants.size(); i++)
      gsonString.add(gson.toJson(restaurants.get(i)));
 tinydb.putListString("tinyRestaurant",gsonString);

转换它

 Gson gson = new Gson();
 for(int i=0; i<tinydb.getListString("tinyRestaurant").size(); i++)
            restaurants.add(gson.fromJson(tinydb.getListString("tinyRestaurant").get(i), Restaurant.class));