说我有
sudo service apache2 start
如果// Function<? super Observable<T>, ? extends ObservableSource<R>> selector
source -> Observable.merge(
source.ofType(A.class).compose(transformerA),
source.ofType(B.class).compose(transformerB)
);
恰好既不属于source
也不属于A
,是否有一种聪明的方法可以抛出错误,因此我可以检测到缺少的实现?
答案 0 :(得分:1)
如果源值既不是类型也不是flat将未知元素映射到错误中,则进行过滤器传递:
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))
);
是的,如果有一个类型C
获得处理程序,则必须扩展该模式。