首页 > 解决方案 > Flux.onErrorContinue 参数类型

问题描述

有谁知道为什么Flux.onErrorContinue参数为以下类型的原因:

public final Flux<T> onErrorContinue(BiConsumer<Throwable, Object> errorConsumer) {
...
}

代替

public final Flux<T> onErrorContinue(BiConsumer<Throwable, T> errorConsumer) {
...
}

?

标签: javafluxproject-reactor

解决方案


好的,我想我刚刚明白:

Flux<Integer> f1 = Flux.fromStream(Stream.of(1));

Flux<String> f2 = f1.map(i ->{
    throw new RuntimeException("bang");
});

f2.onErrorContinue((t, o) -> {
    System.out.println("o = " + o.getClass());
}).subscribe(System.out::println);

输出:

o = class java.lang.Integer

从字符串的通量中您无法知道导致问题的元素是整数,因此唯一的选择是将其视为对象...


推荐阅读