反应式 java 方法 hide()

2022-09-02 20:36:15

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

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

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

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


答案 1

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

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

例如:

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

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

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

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


答案 2

推荐