我没有找到有效的方法。你可以帮忙吗?
private List<List<Restaurant.Menu>> menus = new ArrayList<>();
ArrayList<Object> objMenus = new ArrayList<>();
for(int i = 0; i < menus.size(); i++)
{
objMenus.add(menus.get(i));
}
tinydb.putObject("menus",objMenus);
tinydb
支持Listobject和object。我将此值存储为对象。
现在,我想再次将此对象转换为List<List<Restaurant.Menu>>
。
private List<List<Restaurant.Menu>> menus = new ArrayList<>();
ArrayList<Object> objMenus = new ArrayList<>();
objMenus.add(tinydb.getObject("menus", Object.class));
menus = ? convert objMenus
我尝试了几种方法,但效率不高。有什么建议吗?提前谢谢。
答案 0 :(得分:0)
此解决方案仅在objMenus
包含List<Restaurant.Menu>
的具体元素时才有效。
含义,objMenus
属于ArrayList<Object>
类型,完全没问题,但此ArrayList
的每个元素都必须引用List<Restaurant.Menu>
。< / p>
使用Streams API:
List<List<Restaurant.Menu>> menus =
objMenus.stream()
.map(e -> (List<Restaurant.Menu>) e)
.collect(toList());
使用命令式方法:
List<List<Restaurant.Menu>> menus = new ArrayList<>();
for (Object list : objMenus) {
menus.add((List<Restaurant.Menu>)list);
}