【问题标题】:RxJava (+Room): Why Flowable<List<MyObject>> returns List<List<MyObject>>?RxJava (+Room):为什么 Flowable<List<MyObject>> 返回 List<List<MyObject>>?
【发布时间】:2019-04-04 18:45:11
【问题描述】:

运行测试时,带有Flowable&lt;List&lt;MyObject&gt;&gt; 的我的房间查询(来自MyObjectDao)返回List&lt;List&lt;MyObject&gt;&gt;。这是查询:

@Query("SELECT * FROM myobjects")
Flowable<List<MyObject>> getAllMyObjects();

这是我从查询中提取第一个 MyObject 的方法:

MyObject toDelete = myObjectDao.getAllMyObjects().test().values().get(0).get(0);

如您所见,我从查询中得到了List&lt;List&lt;MyObject&gt;&gt;?这是为什么?为什么它被包裹在另一个列表中?

【问题讨论】:

    标签: android rx-java rx-java2 android-room


    【解决方案1】:

    values() 返回在您的Flowable 的生命周期内获得的所有排放量。由于您的Flowable 的每个排放都是List,所以values() 将返回我们所有排放列表的列表。

    【讨论】:

    • 谢谢,现在说得通了。如果它只有 1 次排放(或者如果我知道总量),您对如何测试我的 Flowable 有什么建议吗?我这样做的方式好吗?
    • 您仍然可以使用它,只需在执行其他任何操作之前断言 valueCount()1(或任何您期望的排放数量)
    • 好的,我明白了。再次感谢您的帮助,非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2013-04-23
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多