Преобразование текучего <List <T>> в один <Boolean> - PullRequest
0 голосов
/ 03 июля 2018

У меня есть функция в @Dao. Давайте назовем этот класс DaoClass

abstract fun getData() : Flowable<List<Data>>

Теперь я хочу проверить, пуст ли список возвращаемых данных или нет. Я копался в DaoClass_Impl (создан во время сборки) и обнаружил, что Flowable не будет пустым. Итак,

getData().isEmpty всегда будет возвращать false.

Так что я сделал getData().singleOrError().map{it.isEmpty()} для возврата, если возвращаемый список действительно пуст.

Но у меня проблема, поскольку значение не передается.

1 Ответ

0 голосов
/ 03 июля 2018

Вам нужно проверить, что на самом деле делает singleOrError:

Возвращает Single, который испускает один элемент, испускаемый этим Flowable, если этот Flowable испускает только один элемент, в противном случае, если этот Flowable завершается без выделения каких-либо элементов, будет сигнализироваться NoSuchElementException, и если этот Flowable испускает более одного элемента, IllegalArgumentException будет сигнализироваться.

То, что вы ищете, это firstOrError, который возвращает только первое выданное значение.

...