尝试将Mono内部具有可迭代对象的对象转换为Flux我收到此错误(kotlinc控制台):
>>> Mono.just(listOf(1,2,3,4,5)).flatMapMany(Flux::fromIterable)
error: type inference failed: Not enough information to infer parameter R in fun <R : Any!> flatMapMany(p0: Function<in (Mutable)List<Int!>!, out Publisher<out R!>!>!): Flux<R!>!
Please specify it explicitly.
(Mono.just(listOf(1,2,3,4,5))这只是一个简单的例子)
如果我更改为以下内容,它将起作用:
>>> Mono.just(listOf(1,2,3,4,5)).flatMapMany { Flux.fromIterable(it) }
res28: reactor.core.publisher.Flux<kotlin.Int!>! = MonoFlatMapMany
因此,用作品替换flatMapMany(Flux::fromIterable),flatMapMany { Flux.fromIterable(it) }但使其更大且功能更少,在 Java 中,Flux::fromIterable符号确实有效(jshell控制台示例):
jshell> Mono.just(Arrays.asList(1,2,3,4,5)).flatMapMany(Flux::fromIterable)
$6 ==> MonoFlatMapMany
我试图以不同的方式根据需要显式设置类型,但没有任何效果:
Mono.just(listOf(1,2,3,4,5)).flatMapMany<Int>(Flux::fromIterable)Mono.just(listOf(1,2,3,4,5)).flatMapMany(Flux<Int>::fromIterable)Mono.just(listOf(1,2,3,4,5)).flatMapMany(Flux::fromIterable<Int>)