You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Kotlin Lambda实现java.util.function.Function?

解决方法

要将Kotlin Lambda赋值给Java的java.util.function.Function接口,核心是让编译器明确Lambda参数的类型,具体有两种常用方式:

  • 显式指定Lambda参数类型:
    直接在Lambda的参数上声明类型,让编译器匹配Java Function的泛型约束:

    import java.util.function.Function
    
    val s: Function<String, String> = { s: String -> s + s }
    
  • 显式类型转换:
    先定义带参数类型的Lambda,再转换为Java Function类型:

    import java.util.function.Function
    
    val s = { s: String -> s + s } as Function<String, String>
    

错误原因

你遇到的编译错误,本质是编译器无法自动推断Lambda中参数s的类型——Java的Function<String, String>是泛型接口,Kotlin无法仅通过变量的声明类型反向推导Lambda参数的具体类型,必须显式标注参数类型才能完成类型匹配。

内容的提问来源于stack exchange,提问作者Some Name

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:52:36