我如何继承 Observable<T>?
How do I inherit from an Observable<T>?
我想构建一个继承自 Observable<EventArgs>
的事件代理 class。在 Rx 的 .NET 实现中,你可以简单地实现 IObservable<EventArgs>
;此外,在 .NET 中,publish()
方法只接受您希望订阅者接收的参数。
谁能解释一下 Java 是如何做到的?我想要的只是一个 class 本质上表现为 Observable<Foo>
.
在大多数情况下,没有必要实现自己的 Observable 继承者。有很多构造方法可以创建 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();
}
}
我想构建一个继承自 Observable<EventArgs>
的事件代理 class。在 Rx 的 .NET 实现中,你可以简单地实现 IObservable<EventArgs>
;此外,在 .NET 中,publish()
方法只接受您希望订阅者接收的参数。
谁能解释一下 Java 是如何做到的?我想要的只是一个 class 本质上表现为 Observable<Foo>
.
在大多数情况下,没有必要实现自己的 Observable 继承者。有很多构造方法可以创建 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();
}
}