您的位置 首页 java

从Kotlin调用Java功能接口

简要演示了如何使用一次性和多次使用 泛型 从Kotlin调用功能接口。

基本

以下是用 Java 定义的功能接口:

注意,一个接口不需要被注释@FunctionalInterface为一个接口。

在Kotlin中,可以使用以下代码来实现:

由于该Executor接口只有一个函数和一个输入参数,因此可以为传递给的lambda分配类型execute。这样就无需将其显式定义为Runnable。这被称为SAM( 小号 英格尔 bstract 中号 ethod)变换,见科特林文档的详细信息。

实现相同目标的更详细的方法如下:

如果您使用的是Intellij,它将帮助您找到第一个解决方案。

单类型泛型

让我们使其更加令人兴奋,并在本回合中包含一些泛型。使用Java接口和一个函数来调用它:

doStuff可以使用以下Kotlin代码调用该函数:

最简化代码的返回类型取决于lambda的结果,在这种情况下为a String。

多类型泛型

当泛型变得更加复杂时该怎么办?我对示例代码做了一些说明,以证明这一点:

我实际上很难想到一个示例来演示输入和输出泛型。我认为这段代码很丑陋,不太可能代表真正的代码。尽管如此,它仍然足以作为示例。

要调用此代码,请使用以下代码:

实际上,正如我第二次提到的那样,通用输入类型A(B在本示例中)将由外部来源提供。此外,泛型类型将在总体类上指定,或者从一开始就被锁定为特定类型。

点击关注私信小编“资源”即可获得免费的学习资料

文章来源:智云一二三科技

文章标题:从Kotlin调用Java功能接口

文章地址:https://www.zhihuclub.com/174788.shtml

关于作者: 智云科技

热门文章

网站地图