Reactive java method hide()



类可观察中的隐藏方法有什么用?我阅读了该文档,但仍然不知道它的用途,我看到很多人使用它

 hide()
    Hides the identity of this Observable and its Disposable.

http://reactivex.io/RxJava/javadoc/io/reactivex/Observable.html

我们什么时候应该使用这种方法?

如果你看一下文档,你会在下一句话中看到:

允许隐藏额外的功能,例如主体的观察者方法或阻止某些基于身份的优化(融合)。

一个例子是:

PublishSubject<Object> objectPublishSubject = PublishSubject.create();
Observable<Object> hide = objectPublishSubject.hide();

比方说,你在内部使用PublishSubject,并希望将Observable传递给外部世界。这将是一个好主意,因为信息隐藏。来自外部的调用方将无法在可观察量上调用 #onNext()。因此,您可以只使用 Observable 作为方法的返回值,并只返回 PublishSubject。这是可能的,但调用方将能够强制转换它,并且能够从外部调用 #onNext()。

Observable

#hide 从 PublishSubject 创建一个新的 Observable,因此无法进行强制转换。

最新更新