ich RxJava für mein Projekt bin mit und ich bin ein wenig mit diesem Stück Code verwirrt:Was ist die beste Vorgehensweise für die Rückgabe von Ergebnissen aus Observablen in einem Observable?
@Override
public Observable<Hexagon<T>> getHexagons() {
return Observable.create(new OnSubscribe<Hexagon<T>>() {
@Override
public void call(final Subscriber<? super Hexagon<T>> subscriber) {
hexagonDataStorage.getCoordinates().subscribe(new Subscriber<CubeCoordinate>() {
@Override
public void onCompleted() {
subscriber.onCompleted();
}
@Override
public void onError(final Throwable throwable) {
System.err.println(String.format("Cannot get Hexagons: <%s>", throwable.getMessage()));
}
@Override
public void onNext(final CubeCoordinate cubeCoordinate) {
subscriber.onNext(new HexagonImpl<>(gridData, cubeCoordinate, hexagonDataStorage));
}
});
}
});
}
Was ich versuche im Grunde hier zu tun ist, um
- alle
CubeCoordinate
bekommen Objekte durch diegetCoordinates
Methode aufrufen, die in der Tat einObservable
- verwandeln die
CubeCoordinate
Objekte inHexagon
Objekte zurückgibt und das Ergebnis als neueObservable
zurückzukehren.
Dieses Beispiel funktioniert, aber es ist wirklich ermüdend für meine Augen und riecht auch. Gibt es einen besseren Weg, um das gleiche Ergebnis zu erzielen?
Gibt es auch eine Implementierung von Subscriber
, die mich nur übersteuert onCompleted
und onNext
? onError
wird in meinem Fall nicht benötigt. Ich habe den Quellcode überprüft, aber es gibt eine Vielzahl von Implementierungen, und ich kann anhand meiner Kriterien nicht unterscheiden.
Ich sehe. Ich benutze Java 7 hier, also habe ich keine lambdas, aber ich werde mir das anschauen, danke! –