gpt4 book ai didi

java - 如何为多个观察者实现不同的行为?

转载 作者:行者123 更新时间:2023-12-02 01:29:53 25 4
gpt4 key购买 nike

我需要为观察者期望观察的两种类型的元素赋予 io.reactivex.Observer 类的方法 @Override onNext() 不同的行为,是类 BC

import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;

public class A implements Observer<B>, Observer<C> {

}

当执行 Android studio 方法的实现时,它显示 onNext() 为:onNext(t:T):void

enter image description here

但是当实现这些方法时,该方法是 onNext(B b){}

然后显示以下错误:

Duplicate class: 'io.reactivex.Observer'

此外,如果我使用自定义观察者创建接口(interface)来隐式实现行为,我仍然会收到相同的错误,但更具描述性:

public interface InterfaceB extends Observer<B> {}
public interface InterfaceC extends Observer<C> {}
public class A implements InterfaceB, InterfaceC {}

'io.reactivex.Observer' cannot be inherited with different type arguments: 'B' and 'C'.

最佳答案

如何创建接口(interface)CAB都实现C接口(interface)并创建一个类C 接口(interface)的观察者?

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
}
}
}

关于java - 如何为多个观察者实现不同的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56263370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com