Реактивный метод java скрыть()

для чего используется метод hide в классе Observable? Я прочитал документ, но до сих пор не знаю, для чего он используется, и я видел, что многие люди используют его

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

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

когда мы должны использовать этот метод?

1 ответов


Если вы посмотрите на документацию, вы увидите в следующем предложении:

позволяет скрывать дополнительные функции, такие как методы наблюдателя субъекта или предотвращать определенные оптимизации на основе идентичности (слияние).

пример:

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

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

допустим, вы используете PublishSubject внутренне, и вы хотите передать наблюдаемое внешнему миру. Это было бы хорошей идеей, из-за сокрытия информации. Звонивший снаружи не удается вызвать #onNext () на наблюдаемом. Таким образом, Вы можете просто использовать Observable как возвращаемое значение метода и просто вернуть PublishSubject. Это было бы возможно, но вызывающий объект смог бы бросить его и смог бы вызвать #onNext() извне.

Observable#hide создайте новый Observable из PublishSubject, поэтому кастинг невозможен.