0

所以,这是我的代码:

@Override
public RealmList<RealmStuff> call(List<Stuff> stuff) {
    return Observable.from(stuff)
            .map(this::getRealmStuff)
            .toList()
            .toBlocking()
            .first();
}

这很好。但是我想获得一个 RealmList。我怎样才能做到这一点?我应该使用平面地图并使用老式的 for-each 并将项目逐个添加到新的 RealmList 中吗?

也许是这样的:

    .map(realmStuff -> new RealmList<>(realmStuff.toArray(new RealStuff[realmStuff.size()])))

但这对我来说看起来很疯狂......或者只是我?

4

1 回答 1

1

如果你真的想使用RxJava它,你可以使用collect运算符:

//pseudocode
Observable.from(stuff)
    .collect(() -> {
            return new RealmList(); //list initialization
        }, (realmList, stuffItem) -> {
            realmList.add(stuffItem); //adding each item to list
        }
    ).blockingGet()

但是反应式方法在这里是多余的,只需使用常规的 forEach 循环。

于 2017-04-14T01:19:09.470 回答