gpt4 book ai didi

java - 将 java 方法转换为 kotlin。返回 lambda 表达式

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

kotlin 1.3.31

我有以下 Java 代码片段,我正在尝试将其转换为 Kotlin

private ArgumentMatcher<List<Person> customArgumentMatcher(final int size) {
return argument -> argument.size() == size;
}

我对上面的理解是一个以ArgumentMatcher作为返回类型的方法声明,并且在lambda表达式中执行接口(interface)的方法并返回结果 boolean 值。如果我的解释有误,请纠正我。

但是,当我尝试将其转换为 Kotlin

 private fun customArgumentMatcher(size: Int): ArgumentMatcher<List<Person>> {
return { argument -> argument.size == size }
}

我收到以下错误:

Required ArgumentMatcher<List<Person>>
found: (???) -> Boolean

非常感谢您的建议,

最佳答案

由于 ArgumentMatcher 是您需要使用的 Java 函数接口(interface):

fun customArgumentMatcher(size: Int): ArgumentMatcher<List<Person>> {
return ArgumentMatcher { argument -> argument.size == size }
}

请参阅SAM Conversions Kotlin 引用的部分。

<小时/>

您还可以使用:

fun customArgumentMatcher(size: Int) = ArgumentMatcher<List<Person>> { it.size == size }
<小时/>

参见gidds' answer了解为什么上述语法是必要的一些背景。

关于java - 将 java 方法转换为 kotlin。返回 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56718113/

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