Ich habe einen Stream, wo ich beobachtete das ausgewählte Geschäft des Benutzers. Es sollte null
ausgeben, wenn kein Geschäft ausgewählt ist. Dies ist eine heiße beobachtbare, so dass es nie enden sollte.NullPointerException in RxJava heißen beobachtbaren Stream
@Override
public Observable<Business> observeSelected() {
return selectedDb.observe()
.flatMap(businessId -> observe(businessId);
}
Es gibt zwei wichtige Methode
Observable<String> selectedDb.observe()
kehrt die String businessId
des ausgewählten Unternehmen hier nennt, oder null
wenn kein Geschäft ausgewählt ist.
Observable<Business> observe(String businessId)
kehrt dieBusiness
mit # 1businessId
odernull
wenn kein Geschäft mit dem angegebenen ID gefunden wird
Wenn # 1 oder # 2 null
emittieren, ich möchte die gesamte Methode null
einmal ausgeben.
Offensichtlich wird dieser Code NullPointerException
werfen, wenn # 1 oder # 2 Nullen ausgeben. Ich könnte den obigen Code mit Null-Checks verschütten und null ausgeben, aber das würde es sehr hässlich machen. Gibt es eine Möglichkeit, nur NullPointer-Ausnahmen mit RxJava abzufangen? Ich könnte .filter()
verwenden, um zu verhindern, dass Nullen ausgegeben werden, aber ich möchte immer noch einen onNext(null)
ausgeben, wenn kein Geschäft ausgewählt ist.
Was ist die beste Vorgehensweise hier?