gpt4 book ai didi

java - 将 java.util.function.Function 转换为 Kotlin 的函数式接口(interface)类型

转载 作者:搜寻专家 更新时间:2023-11-01 09:21:20 27 4
gpt4 key购买 nike

我正在使用分别用 Java 和 Kotlin 编码的两个模块,因此需要一些互操作性。

在其中一种情况下,java 模块返回类型为 java.util.function.Function 的函数接口(interface),它将被 kotlin 代码使用。

我可以按原样使用 java 类型。但是,我希望能够将其转换为 kotlin 的原生类型,无论是 kotlin.Function 还是 kotlin.reflect.KFunction。这样做的原因是为了能够支持与 java 模块类似的 kotlin 模块,该模块为客户端提供功能。

有什么办法吗?

最佳答案

你不能在它们之间转换,它们只是两个不同的接口(interface)。但是编写转换函数很简单:

import java.util.function.Function

fun <A, B> Function<A, B>.toKotlin(): (A) -> B = { this.apply(it) }

fun <A, B> ((A) -> B).toJava(): Function<A, B> = Function { this(it) }

kotlin-stdlib-jdk8 可以提供这些,但似乎没有。

当然,在大多数情况下,您可以同时使用 Kotlin 和 Java lambdas/方法引用。

关于java - 将 java.util.function.Function 转换为 Kotlin 的函数式接口(interface)类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55057353/

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