从 java 中的 Flowable 获取列表的最简单方法是什么?

时间:2021-02-16 00:33:14

标签: java android rx-java reactive-programming

我的数据库像这样返回一个 Flowable:

Flowable<List<Users>> users = MyActivity.myDatabase.myDAO().getUsers();

我想快速轻松地将它转换为一个列表,这样我就可以计算它,遍历它,也许将它作为一个 ArrayList 传递。使用 Java 执行此操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您将不得不使用阻塞调用来实际检索值。但是,从问题中不清楚您是期望单个用户列表还是用户列表列表。

如果您期待一个 List<Users>,您可以这样做:

List<Users> usersList = users.blockingFirst();

如果您需要一个用户列表列表,则需要执行以下操作:

List<List<Users>> userLists = users.toList().blockingGet();

在任何一种情况下,如果您特别需要 ArrayList,则必须构造一个并复制元素,因为无法确切说明上述代码返回的 List 实现类型。 (例如,您可以在第一种情况下执行 new ArrayList<>(users.blockingFirst()),在第二种情况下执行类似的操作。)