我在@Dao
中有一个功能。让我们将该类称为DaoClass
abstract fun getData() : Flowable<List<Data>>
现在,我想检查返回的数据列表是否为空。我浏览了DaoClass_Impl(在生成时生成),发现Flowable不会为空。因此,
getData().isEmpty
将始终返回false。
所以我所做的是
getData().singleOrError().map{it.isEmpty()}
返回,如果返回的列表实际上为空。
但是我有问题,因为价值没有得到释放。
答案 0 :(得分:2)
您需要检查singleOrError
的实际作用:
返回一个Single,它发出此Flowable发出的单个项目,如果此Flowable仅发出一个项目,否则,如果此Flowable完成而不发出任何项目,则将发出NoSuchElementException信号,并且如果此Flowable发出多个项目,则将显示IllegalArgumentException。
您要寻找的是firstOrError
,它仅返回发出的第一个值。