Как собрать Maybe<List<User>> из Maybe<User>?

154
20 сентября 2018, 17:30

Есть у меня метод

Maybe<User> getUser(int iId){}

и есть метод

Maybe<List<User>> getUsers(List<Integer> iIds){}

Вопрос: как реализовать этот метод?

Answer 1

Предлагаю лучше возвращать Single вместо Maybe, тогда реализовать можно, например, так:

Single<List<User>> getUsers(List<Integer> ids) {
    return Observable.fromIterable(ids)
            .flatMapMaybe((id) -> getUser(id))
            .toList();
}

Если все же нужно возвращать Maybe, то можно сделать так:

Maybe<List<User>> getUsers(List<Integer> ids) {
    return Observable.fromIterable(ids)
            .flatMapMaybe((id) -> getUser(id))
            .toList()
            .flatMapMaybe((list) -> {
                if (list.isEmpty()) {
                    return Maybe.empty();
                } else {
                    return Maybe.just(list);
                }
            });
}
READ ALSO
Xpath для чекбоксов

Xpath для чекбоксов

Есть страничка, в которой есть чек боксы:

148
Расшифровка пароля

Расшифровка пароля

В общем появилась у меня проблема с расшифровкой пароляЕсть два метода:

187
JavaFX: Gif и пауза

JavaFX: Gif и пауза

Идея такая: есть скрытая GIF'капри нажатии на кнопку, она становится видимой, пауза в пару секунд, GIF'ка опять становится невидимой и происходит...

181
PreDestroy аннотация, сравнение с finalise()

PreDestroy аннотация, сравнение с finalise()

Является ли использование, @PreDestroy плохой практикой(как с finalize)?

171