对于观察者希望观察的2种元素,我需要对 io.reactivex.Observer 类的方法@Override onNext()
赋予不同的行为,即{{1 }}和B
。
C
执行Android Studio方法的实现时,onNext()显示为:import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
public class A implements Observer<B>, Observer<C> {
}
但是当实现方法时,方法是onNext(t:T):void
。
然后显示以下错误:
重复的类:“ io.reactivex.Observer”
此外,如果我使用自定义观察者创建接口以隐式实现行为,我仍然会遇到相同的错误,但更具描述性:
onNext(B b){}
'io.reactivex.Observer'不能使用不同的类型参数'B'和'C'继承。
答案 0 :(得分:2)
如何创建C
和A
都实现B
接口的接口C
并创建一个观察C
接口的类?
public class A implements C {}
public class B implements C {}
public class D implements Observer<C> {
@Override
public onNext(C next) {
if (c instanceof A) {
// ... do whatever you want to do with A instance
} else if (c instanceof B) {
// ... do whatever you want to do with B instance
}
}
}