使用两个参数更正 onErrorResume 的 kotlin 语法

Correct kotlin syntax for onErrorResume with two arguments

如何正确地将一些 java 代码翻译成 Kotlin:

Mono mono = ...
Mono x = mono
    .onErrorResume(BadJOSEException.class,
        e->Mono.error(new RuntimeException()))

OnErrorResume 来自Spring Reactor,定义如下:

fun <T : Any, E : Throwable> Flux<T>.onErrorResume(exceptionType: KClass<E>, fallback: (E) -> Publisher<T>): Flux<T>
//Extension for Flux.onErrorResume providing a KClass based variant.

我尝试了几个选项,但都给出了编译错误,而且 Intellij 也没有帮助。 如果我删除具有异常类型的第一个参数,它工作正常,但我确信应该有一种方法来包含异常类型以限制某些类型。

val x = mono.onErrorResume(BadJOSEException::class) { Mono.error(RuntimeException()) }

请注意,此 onErrorResume 扩展功能已在 reactor-core 中弃用,要使用它您需要添加 reactor-kotlin-extensions 依赖项