当前位置: 首页> 财经> 访谈 > Kotlin 函数式接口

Kotlin 函数式接口

时间:2025/7/9 15:42:08来源:https://blog.csdn.net/weixin_67575670/article/details/139304017 浏览次数:0次

文章目录

  • 定义
  • 实例化
  • Kotlin 调用 Java 单抽象方法接口

定义

在 Kotlin 中,如果一个接口只有一个抽象方法(其他抽象成员数量不限),可以写成类似函数的形式。

fun interface Editable {// 此处 abstract 可省略abstract fun edit()
}

实例化

正常情况下,我们实例化接口需要用到匿名对象object {}

fun main() {val editable = object : Editable {override fun edit() {print("编辑中...")}}editable.edit()
}
编辑中...

而定义了函数式接口后,我们可以这样做:

fun main() {val editable = Editable { print("编辑中...")}
}

Kotlin 调用 Java 单抽象方法接口

(不知道 Java 是什么可以跳过)
在 Java 中的Runnable接口中只定义了一个抽象方法run,这样的 Java 单抽象方法接口在 Kotlin 中是可以像调用函数式接口fun interface一样调用的(Kotlin 的接口则必须在定义时interface前加fun才行):

// Runnable.java
@FunctionalInterface
public interface Runnable {/*** Runs this operation.*/void run();
}

如果使用 Java 实例化该接口,需要这样写:

public class Test {public static void main(String[] args) {// 这是实例化的位置new Runnable() {@Overridepublic void run() {System.out.print("Run");}};}
}

而使用 Kotlin 是这样写的:

fun main() {object : Runnable {override fun run() {print("Run")}}
}

使用函数式接口调用的写法后,它又是这样的:

fun main() {Runnable {print("Run")}
}

该学谁不用我说了吧。

关键字:Kotlin 函数式接口

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: