Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 忽略可观测数据中的错误<;单个<;T>&燃气轮机;_Java_Rx Java_Rx Java2 - Fatal编程技术网

Java 忽略可观测数据中的错误<;单个<;T>&燃气轮机;

Java 忽略可观测数据中的错误<;单个<;T>&燃气轮机;,java,rx-java,rx-java2,Java,Rx Java,Rx Java2,我有一个可观察的,我想把它转换成一个新的可观察的,其中任何失败的单个都会被忽略 以下是我的实现尝试: public static <T> Observable<T> skipErrors(final Observable<Single<T>> xs) { Preconditions.checkNotNull(xs); return xs.flatMap(single -> single.map(Optional::of)

我有一个
可观察的
,我想把它转换成一个新的
可观察的
,其中任何失败的
单个
都会被忽略

以下是我的实现尝试:

public static <T> Observable<T> skipErrors(final Observable<Single<T>> xs) {
    Preconditions.checkNotNull(xs);
    return xs.flatMap(single -> single.map(Optional::of)
        .onErrorReturn(error -> Optional.empty())
        .flatMapObservable(optional ->
            optional.map(Observable::just).orElseGet(Observable::empty)));
}

我认为你应该可以做得简单一点:

public static <T> Observable<T> skipErrors(final Observable<Single<T>> singles) {
  Preconditions.checkNotNull(xs);
  return singles
    .flatMap(single -> single
        .toObservable()
        .onErrorResumeNext(Observable.empty())
    );
}
publicstaticobservedskipperrors(最终可观察单曲){
先决条件。checkNotNull(xs);
返回单打
.flatMap(单个->单个
.TooObservable()文件
.onErrorResumeNext(Observable.empty())
);
}

这确实更简单。谢谢
public static <T> Observable<T> skipErrors(final Observable<Single<T>> singles) {
  Preconditions.checkNotNull(xs);
  return singles
    .flatMap(single -> single
        .toObservable()
        .onErrorResumeNext(Observable.empty())
    );
}