我的数据库像这样返回一个 Flowable:
Flowable<List<Users>> users = MyActivity.myDatabase.myDAO().getUsers();
我想快速轻松地将它转换为一个列表,这样我就可以计算它,遍历它,也许将它作为一个 ArrayList 传递。使用 Java 执行此操作的最佳方法是什么?
答案 0 :(得分:0)
您将不得不使用阻塞调用来实际检索值。但是,从问题中不清楚您是期望单个用户列表还是用户列表列表。
如果您期待一个 List<Users>
,您可以这样做:
List<Users> usersList = users.blockingFirst();
如果您需要一个用户列表列表,则需要执行以下操作:
List<List<Users>> userLists = users.toList().blockingGet();
在任何一种情况下,如果您特别需要 ArrayList
,则必须构造一个并复制元素,因为无法确切说明上述代码返回的 List
实现类型。 (例如,您可以在第一种情况下执行 new ArrayList<>(users.blockingFirst())
,在第二种情况下执行类似的操作。)