我try 编写以下代码:

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.

Kotlin个lambda分配给Java个函数的正确方式是什么?

推荐答案

您遇到的问题是由于在将lambdas与Java函数接口一起使用时,Kotlin的类型推断在这个特定的上下文中不能按预期工作.

要解决此问题,您可以在代码中使用Function接口显式声明lambda类型:

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 }
}

Java相关问答推荐

有没有方法可以修复错误错误:无法初始化主类code_editor?

如果给定层次 struct 级别,如何从其预序穿越构造n元树

取消按钮,但没有任何操作方法引发和异常

如何让DTO接受空字符串字段,但如果它们不为空,则应用JPA验证?

自定义批注的外推属性值

使SLF4J在Android中登录到Logcat,在测试中登录到控制台(Gradle依赖问题)

如何在antlr4中跳过所有反斜杠-换行符而保留换行符?

允许同时执行两个方法,但不能同时执行这两个方法

try 使用Spring集成和MySQL实现发件箱模式时,锁定等待超时

在macOS上读取文件会导致FileNotFound,即使文件存在(并且具有权限)

Android Java:已设置但未读取SharedPreferences

在Ubuntu 23.10上使用mp3创建JavaFX MediaPlayer时出错

如何用内置Java从JavaFX应用程序中生成.exe文件?

如何在透视表中添加对计数列的筛选?

我的代码是线程安全的吗?[Java、CAS、转账]

在Java中将.GRF转换为图像文件

Java KeyListener不工作或被添加

Java System.getProperty在哪里检索user.home?

如何在Spring Boot中为不同的部署环境管理多个.properties文件?

当我将JTextField的getText函数与相等的String进行比较时;t返回true