Rx java 订阅(新观察者<;T>;())与订阅(新订阅者<;T>;()

Rx java 订阅(新观察者<;T>;())与订阅(新订阅者<;T>;(),rx-java,rx-android,Rx Java,Rx Android,subscribe(newobserver())和subscribe(newsubscriber())之间有什么区别? 我应该在什么上下文中使用哪一个?要回答您的问题,您应该深入了解这两个函数的代码,以及 简而言之,VersionWithObserver首先检查传递的参数是否为订阅服务器的子类型,如果是,则调用第二个版本,否则它只将传递的观察器包装在订阅服务器中并调用第二个版本 鉴于第一种方法基本上是包装器,除非您有任何理由使用Observer而不是Subscriber,否则您应该使用后者。还要

subscribe(newobserver())
subscribe(newsubscriber()
)之间有什么区别?

我应该在什么上下文中使用哪一个?

要回答您的问题,您应该深入了解这两个函数的代码,以及

简而言之,VersionWithObserver首先检查传递的参数是否为订阅服务器的子类型,如果是,则调用第二个版本,否则它只将传递的观察器包装在订阅服务器中并调用第二个版本


鉴于第一种方法基本上是包装器,除非您有任何理由使用Observer而不是Subscriber,否则您应该使用后者。

还要注意用法:订阅者不能重复使用(一旦取消订阅,它就不能再次观察),而观察者可以。因此,如果您想使用同一对象多次观察结果,请使用观察者。@marwinXXII谢谢,可重用性是唯一的区别吗?@shekar observer是一个观察结果的简单接口,而Subscriber是一个实现接收结果逻辑的类,也是观察者。