如何从Observable <T>继承?

Dmi*_*ruk 3 rx-java2

我想建立一个继承自的事件代理类Observable<EventArgs>。在Rx的.NET实现中,您可以简单地实现IObservable<EventArgs>; 此外,在.NET中,该publish()方法仅接受您希望订阅者接收的参数。

有人可以解释一下这是如何用Java完成的吗?我只想要一个班级固有的行为Observable<Foo>

Okn*_*sif 5

在大多数情况下,没有必要实现自己的Observable继承程序。有很多fabric方法可以创建Observable并处理其行为。例如:

Observable.create(new ObservableOnSubscribe<String>() {
    @Override public void subscribe(ObservableEmitter<String> emitter) throws Exception {
        emitter.onNext("New event");

        emitter.onError(new Error());

        emitter.onComplete();
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,如果您确实需要精确地创建继承者,也不难。

class MarkedObservable extends Observable<String> {

    @Override protected void subscribeActual(Observer<? super String> observer) {
        observer.onNext("Message");

        observer.onError(new Error());

        observer.onComplete();
    }
}
Run Code Online (Sandbox Code Playgroud)