我找不到有效的方法。你可以帮忙吗?
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
我尝试了几种方法,但效率不高。有什么建议吗?提前致谢。
只有当objMenus
包含List<Restaurant.Menu>
的具体元素时,此解决方案才有效。
意思是,objMenus
是ArrayList<Object>
类型,它完全没问题,但这个ArrayList
的每个元素都必须引用List<Restaurant.Menu>
。
使用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);
}