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

使用两个参数更正onErrorResume的kotlin语法,kotlin,project-reactor,Kotlin,Project Reactor,如何正确地将以下java代码转换为Kotlin: Mono mono = ... Mono x = mono .onErrorResume(BadJOSEException.class, e->Mono.error(new RuntimeException())) OnErrorResume来自Spring反应堆,定义如下: fun <T : Any, E : Throwable> Flux<T>.onErrorResume(excepti

如何正确地将以下java代码转换为Kotlin:

Mono mono = ...
Mono x = mono
    .onErrorResume(BadJOSEException.class,
        e->Mono.error(new RuntimeException()))
OnErrorResume来自Spring反应堆,定义如下:

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.
fun Flux.onErrorResume(例外类型:KClass,fallback:(E)->Publisher):Flux
//Flux.onErrorResume的扩展提供了基于KClass的变体。
我尝试了几个选项,但都会出现编译错误,Intellij也帮不上忙。 如果我删除第一个带有异常类型的参数,效果会很好,但是我确信应该有一种方法来包含异常类型,以便限制到某些类型。

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

请注意,此
onErrorResume
扩展功能在
反应堆堆芯
中已被弃用,要使用它,您需要添加依赖项

我不知道它已被弃用,但在任何情况下,添加额外的依赖项对我都没有帮助。我应该提到,而不是
{Mono.error(RuntimeException()}
我想要
{t->Mono.error(…)}
,Intellij告诉我“无法推断此参数的类型。请显式指定”对于
t
。但是当显式添加时,它告诉我找不到具有给定参数的函数。可用于
{t->…}
以及
{t:BadJOSEException->…}
对我来说。可能是IntelliJ中的一些小故障?它能编译吗?谢谢,我算出来了。我必须添加
导入reactor.core.publisher.onErrorResume
,然后很明显它已经被弃用了。下一步是尝试使用一个非弃用的替代品。我这边有点傻,被英特尔的消息弄糊涂了lij,但你是对的。如果你只是添加reactor kotlin扩展,并将导入更改为``import reactor.kotlin.core.publisher.onErrorResume`,那么它就可以正常工作了。