我想构建一个继承自Observable<EventArgs>
的事件代理类。在Rx的.NET实现中,您可以简单地实现IObservable<EventArgs>
;此外,在.NET中,publish()
方法只接受您希望订阅者接收的参数。
有人能解释一下如何在Java中完成这项工作吗?我想要的只是一个天生就像Observable<Foo>
一样的班级。
答案 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();
}
}