co*_*ndp 13 java android rx-java
Observable类中的hide方法用于什么?我阅读了该文档,但仍然不知道它的用途是什么,我看到很多人都使用它
hide()
Hides the identity of this Observable and its Disposable.
Run Code Online (Sandbox Code Playgroud)
http://reactivex.io/RxJava/javadoc/io/reactivex/Observable.html
我们应该何时使用这种方法?
Han*_*rst 20
如果您查看文档,您将在下一句中看到:
允许隐藏额外功能,例如Subject的Observer方法或阻止某些基于身份的优化(融合).
一个例子是:
PublishSubject<Object> objectPublishSubject = PublishSubject.create();
Observable<Object> hide = objectPublishSubject.hide();
Run Code Online (Sandbox Code Playgroud)
可以说,您在内部使用PublishSubject,并且希望将Observable传递给外部世界.由于信息隐藏,这将是一个好主意.来自外部的调用者无法在Observable上调用#onNext().因此,您可以使用Observable作为方法的返回值,只返回PublishSubject.这是可能的,但是调用者可以投射它并且能够从外部调用#onNext().
Observable#hide从PublishSubject创建一个新的Observable,因此不可能进行转换.