【发布时间】:2017-04-13 08:48:04
【问题描述】:
所以,这是我的代码:
@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()])))
但这对我来说看起来很疯狂......还是只是我?
【问题讨论】:
-
好吧,如果该方法的目的只是将
List转换为RealmList,我认为使用响应式方法没有任何好处。 -
通常在使用 Rx 时,您会通过整个链传递 Observable,以从异步和面向推送的特性中受益。如果您只想进行串行或并行计算,那么您可以查看Java 8 Streams。
-
RxJava 不是 Stream Api,不应该这样使用。经验法则:如果你在 rx 链中使用 toBlocking() 可能你做错了什么。
标签: realm rx-java realm-list tolist