当前位置: 首页 > news >正文

Kotlin 函数式接口

文章目录

  • 定义
  • 实例化
  • 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")}
}

该学谁不用我说了吧。

http://www.lryc.cn/news/365275.html

相关文章:

  • 【数据结构】平衡二叉树(AVL树)
  • python数据文件处理库-pandas
  • stm32 h5 串口采用DMA循环BUFF接收数据
  • 海外媒体通稿:9个极具创意的旅游业媒体推广案例分享-华媒舍
  • 接口自动化框架封装思想建立(全)
  • char [] 赋新值
  • matlab计算图像信噪比SNR
  • DP读书:如何使用badge?(开源项目下的标咋用)
  • 使用JavaScript实现网页通知功能
  • 前端--导出
  • 【数据库系统概论】触发器
  • 小白跟做江科大32单片机之按键控制LED
  • 每天写java到期末考试(6.6)-java文件输入输出流实验
  • Word2021中的The Mathtype DLL cannot be found问题解决(office 16+mathtype7+非初次安装)
  • 【Android面试八股文】在Java中传参数时是将值进行传递,还是传递引用?
  • 神经网络 torch.nn---Linear Layers(nn.Linear)
  • PPT视频如何16倍速或者加速播放
  • 【ai】DeepStream 简介
  • 如何学习使用淘宝API?淘宝API运营场景
  • Java 面试题:Java 的动态代理是基于什么原理?
  • Python logging 模块详解
  • http://account.battlenet.com.cn
  • java第二十课 —— 面向对象习题
  • Flask的模块化实践
  • 锁存器(Latch)的产生与特点
  • 搜维尔科技:「案例」Faceware电影中面部动画的演变历程
  • 特征工程技巧—Bert
  • 更改 Docker 的默认存储位置
  • 搜索与图论:图中点的层次
  • NLP入门——数据预处理:编码规范化