我如何从Observable <t>继承?

时间:2017-11-29 14:00:34

标签: rx-java2

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

有人能解释一下如何在Java中完成这项工作吗?我想要的只是一个天生就像Observable<Foo>一样的班级。

1 个答案:

答案 0 :(得分: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();
    }
});

但是,如果你真的需要创建一个完全的继承者,那也不难。

class MarkedObservable extends Observable<String> {

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

        observer.onError(new Error());

        observer.onComplete();
    }
}