【发布时间】:2021-03-05 04:14:04
【问题描述】:
我正在将我的 signals 库从 Java 转换为 Kotlin,但我无法让 Kotlin 与 lambda 表达式配合使用。
这是图书馆的样子:
object Signals{
fun <T : Any> inject(type: KClass<T>): Signal<T> {
}
}
class Signal<T : Any>{
fun addListener(listener: T){
}
}
现在我想注入 TestMe 接口。
interface TestMe{
fun onTest(message:String)
}
@Test
fun inject() {
val testMeSignal = Signals.inject(TestMe::class)
testMeSignal.addListener(...)
}
我希望它使用 lambda 作为休闲:
testMeSignal.addListener({s:String-> println(s)})
但唯一有效的是
testMeSignal.addListener(object: TestMe{
override fun onTest(s: String) {
println(s)
}
})
如何让 lambda 在这里工作?
【问题讨论】: