为了完成类似的事情,添加了rxjava2
新的便捷方法。
toSingle()会将发出单个项目的Observable
转换为发出该项目的Single
toObservable()将Single
转换为Observable
,发出Single
发出的项目,然后完成
如何将Observable
转换为Maybe
?
答案 0 :(得分:8)
您不能直接将Observable
转换为Maybe
,因为它不知道在该上下文中要发出什么:它是第一个元素吗?最后?对元素进行一些处理的产物?
然而,您可以决定并做您想做的事情:
final Observable<Boolean> sourceBooleans = Observable.just(true, true, false);
final Maybe<Boolean> firstMaybe = sourceBooleans.firstElement();
final Maybe<Boolean> lastMaybe = sourceBooleans.lastElement();
final Maybe<Boolean> secondMaybe = sourceBooleans.elementAt(1);
final Observable<Integer> sourceNumbers = Observable.just(1, 2, 3, 4);
final Maybe<Integer> firstEven = sourceNumbers
.filter(it -> it % 2 == 0)
.firstElement()
您可以在Maybe
implementation
Observable
请注意,您不能直接从Observable
转到Single
,也不能选择它应该发出的内容:toSingle
类中没有Observable
,但方法而是返回Single
(例如first()
,last()
等)