2017-11-29 2 views
2

Ich möchte eine Ereignisbroker-Klasse erstellen, die von Observable<EventArgs> erbt. In der .NET-Implementierung von Rx können Sie einfach IObservable<EventArgs> implementieren; Darüber hinaus nimmt die Methode publish() in .NET nur das Argument, dass die Abonnenten empfangen sollen.Wie erben ich von einem Observable <T>?

Kann jemand erklären, wie das in Java gemacht wird? Alles, was ich will, ist eine Klasse, die sich inhärent verhält wie Observable<Foo>.

Antwort

3

In den meisten Fällen ist es nicht erforderlich, einen eigenen Observable-Vererber zu implementieren. Es gibt eine Reihe von Fabrics-Methoden, um Observable zu erstellen und dessen Verhalten zu handhaben. Zum Beispiel:

Aber wenn Sie wirklich genau einen Erben erstellen müssen, ist es auch nicht schwierig.

class MarkedObservable extends Observable<String> { 

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

     observer.onError(new Error()); 

     observer.onComplete(); 
    } 
} 
+0

Ich möchte mit Dependency Injection einen 'Observable ' Generator in Objekte injizieren. Also brauche ich meine eigene Klasse. Bestimmt. Keine andere Option. –

+0

Wenn Sie ein Problem haben, allgemeine Observable zu injizieren, gibt es eine Reihe von Tricks: Sie können eine Marker-Schnittstelle erstellen und Observable-Klasse erweitert werden, es ist offen, also keine Probleme. – Oknesif

+0

Das ist genau das, was ich wollte, um Observable zu erben, aber ich verstehe nicht, was ich mit dem Abonnement-Override machen soll. –

Verwandte Themen