java#一秒钟搞懂lambda表达式

可以使用 lambda 表达式来简化代码的格式包括:

  1. 函数式接口:

    • 只有一个抽象方法的接口(称为函数式接口)可以使用 lambda 表达式。ActionListener 是一个函数式接口,因为它有一个抽象方法 actionPerformed
  2. 简洁的单一方法实现:

    • 当匿名内部类实现的接口只有一个方法时(即函数式接口),使用 lambda 表达式可以让代码更加简洁。Lambda 表达式的基本形式是 (参数列表) -> 表达式 或 (参数列表) -> { 语句块 }
  3. 避免冗长的匿名内部类:

    • Lambda 表达式可以去除匿名内部类中的冗长的类定义,特别是当这个类只实现了一个方法时。

注意:

  • 对于多个方法的接口(即有多个抽象方法的接口),不能使用 lambda 表达式。
  • Lambda 表达式不能用于创建匿名内部类的其他场景,比如实现包含多个方法的接口,或是需要维护多个状态的复杂对象。

4.首先这是一个匿名内部类,

看不懂匿名内部类的小伙伴,建议你点这个链接3分钟搞定匿名内部类

button.addActionListener(new ActionListener() {

@Override public void actionPerformed(ActionEvent e) {

System.out.println("Button clicked!"); }

});浅色部分表示可以删除简化的部分,当然后面我会总结简化规则

下面是用lambda表达式简化的形式:

button.addActionListener(e -> System.out.println("Button clicked!"));

没错,lamda表达式就是用来简化匿名内部类的!它只关注方法体!

它是怎么简化的,我们一步步分析:

第一步:去掉浅色部分,只剩下形参和方法体(这一步在删除的过程中其实idea会给提示)

button.addActionListener(

(ActionEvent e) 

System.out.println("Button clicked!"); 

);

第二步:在形参和方法体之间加一个→

button.addActionListener((ActionEvent e)→System.out.println("Button clicked!") );

第三步:形参类型名以及参括数号就得到了lambda表达式

button.addActionListener(e -> System.out.println("Button clicked!"));

5.lambda表达式的省略规则:

参数类型可省;

只有一个参数,参数类型可省,()也可同时省略;

如果lambda表达式的方法体只有一行,大括号“{}”、分号“”、“return”可以省略不写,但必须同时省略(这是重点)

好了,今天的学习就到这了,如果对你有帮助,那就再好不过啦,学习应该是从最简单的开始,用已知的探索未知的,因为他们有联系,不懂匿名内部类的小伙伴,先要学习匿名内部类呦!3分钟的进步胜过24小时的原地踏步,加油!

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值