gpt4 book ai didi

Kotlin lambda/Java SAM互操作 - 类型不匹配

转载 作者:行者123 更新时间:2023-12-02 12:38:58 25 4
gpt4 key购买 nike

我有一个现有的 Java 接口(interface)定义如下

public interface MyRetriever extends Function<String, Optional<String>> {}

并希望根据我的理解定义一个持有符合 SAM 转换的 Kotlin lambda 的变量
var a : MyRetriever = { s : String -> Optional.ofNullable(s.toLowerCase()) }

但相反,我得到一个类型不匹配的错误。
Type missmatch.
Required: MyRetriever
Found: (String) -> Optional<String>

lambda 实际上与 Java 函数定义匹配,我在这里缺少什么?

最佳答案

在进行 SAM 转换时,您需要显式提供一个类型:

var a = MyRetriever { s : String -> Optional.ofNullable(s.toLowerCase()) }

请注意,您可以省略 a 的类型声明。你以前做的方式。

关于Kotlin lambda/Java SAM互操作 - 类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53198867/

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