类可观察中的隐藏方法有什么用?我阅读了该文档,但仍然不知道它的用途,我看到很多人使用它
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,因此无法进行强制转换。