2017-04-18 15 views
1

sourceがタイプABので、私は行方不明の実装を検出することができたのでもないのであることを起こる場合、私は、エラーをスローする巧妙な方法はありRxJava:サポートされていないためにフォールバックする方法onType()を使用しているときにObservables?

// Function<? super Observable<T>, ? extends ObservableSource<R>> selector 
source -> Observable.merge(
    source.ofType(A.class).compose(transformerA), 
    source.ofType(B.class).compose(transformerB) 
); 

があるだろうか?

答えて

1

ソース値がエラーにどちらのタイプとflatMap不明な要素である場合、フィルタを通過してください:ハンドラを取得するタイプCがある場合

source -> Observable.merge(
    source.ofType(A.class).compose(transformerA), 
    source.ofType(B.class).compose(transformerB), 
    source.filter(v -> !(v instanceof A) && !(v instanceof B)) 
     .flatMap(w -> 
      Observable.error(new IllegalArgumentException("Unknown type: " + w)) 
); 

そして、はい、あなたがする必要がありますパターンを拡張する。

関連する問題