提问人:Some Name 提问时间:8/30/2023 更新时间:8/30/2023 访问量:71
有没有办法使用 Kotlin lambda 创建 java.util.funtion.Function?
Is there a way to use Kotlin lambda to create java.util.funtion.Function?
问:
我尝试编写以下代码:
val s: Function<String, String> = { s -> s + s }
编译时出现以下错误:
Type mismatch: inferred type is (???) -> [Error type: Return type for function cannot be resolved] but Function<String, String> was expected
Cannot infer a type for this parameter. Please specify it explicitly.
将 lambda 分配给函数的正确方法是什么?Kotlin
Java
答:
5赞
Diego Borba
8/30/2023
#1
您遇到的问题是由于在将 lambda 与 Java 函数接口一起使用时,Kotlin 的类型推断在此特定上下文中无法按预期工作。
要解决此问题,您可以使用代码中的接口显式声明 lambda 类型:Function
import java.util.function.Function
fun main() {
val s: Function<String, String> = Function<String, String> { s -> s + s }
// Or simply
// val s: Function<String, String> = Function { s -> s + s }
}
2赞
Youcef LAIDANI
8/30/2023
#2
尝试使用 ,完整示例:Function<String, String>
import java.util.function.Function
fun main() {
val s: Function<String, String> = Function { s -> s + s }
val result = s.apply("Kotlin")
println(result) // KotlinKotlin
}
评论