Тип аргумента Flux.onErrorContinue - PullRequest
0 голосов
/ 09 апреля 2019

Кто-нибудь знает причину, по которой Flux.onErrorContinue аргументирует следующий тип:

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

вместо

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

?

1 Ответ

0 голосов
/ 09 апреля 2019

Хорошо, я думаю, что только что понял:

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

Из потока строк вы не можете знать, что элемент, вызвавший проблему, был целым числомтак что единственный вариант - рассмотреть его как объект ...

...