gpt4 book ai didi

kotlin - 绑定(bind)的可调用引用不适用于 Reactor 订阅

转载 作者:行者123 更新时间:2023-12-01 12:20:26 26 4
gpt4 key购买 nike

从 1.1 开始,Kotlin 已经绑定(bind)了可调用引用。因为我在 1.1.3,我想我应该能够使用以下访问 add 方法:

val elements = mutableListOf<Int>()

Flux.just(1, 2, 3, 4)
.log()
.subscribe(elements::add)

但是,这会引发错误:

elements::add error

我不确定在这个特定实例中该错误意味着什么。我可以毫无问题地使用 .subscribe({ elements.add(it) }),但我不能使用 elements::add 版本吗?

最佳答案

Kotlin 函数引用表达式不像 java 方法引用表达式。返回类型 Any 与返回类型 Unit 不兼容。

错误来自MutableList#add(Int)方法的返回类型(Boolean)与参数参数类型不兼容 subscribe 方法的 (Int)->Unit。所以你只能这样使用 lambda 表达式。

当参数类型和返回类型都与函数兼容时,您可以在某处使用list::add。例如:

val add1:(Int) -> Boolean = list::add; // MutableList.add(Int);
val add2:(Int,Int) -> Unit = list::add; // MutableList.add(Int,Int);

关于kotlin - 绑定(bind)的可调用引用不适用于 Reactor 订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44748827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com