Lambda表达式

1.Lambda表达式定义格式

Lambda格式:
  ()->{}

  a.():重写方法的参数位置
  b.->:指的是传递->将重写方法的参数传递到方法体中
  c.{}:重写方法的方法体

public static void main(String[] args) {

        /*
           new Thread不能省略,如果省略了,没法创建线程对象了
           new Runnable() {
            @Override
            public void run() {
                System.out.println("我执行了");
            }
           }

           new Runnable的目的是啥?重写run方法,设置线程任务
           所以,按照函数式编程思想的角度来分析,new Runnable就是过程
           目的是重写run方法,设置线程任务

           所以new Runnable可以省略了
         */
       new Thread(()-> System.out.println("我执行了")).start();
    }

2.Lambda表达式使用前提

1.前提:
  必须是函数式接口做方法参数传递
2.函数式接口:
  有且只能有一个抽象方法的接口
3.检测:
  @FunctionalInterface

@FunctionalInterface
public interface USB {
    public abstract void open();
}

public class Test01 {
    public static void main(String[] args) {
/*        method01(new USB() {
            @Override
            public void open() {
                System.out.println("usb打开了");
            }
        });*/

        method01(()-> System.out.println("usb打开了"));
    }

    public static void method01(USB usb){
        usb.open();
    }
}

3.Lambda表达式省略规则

a.先观察是否是函数式接口做方法参数传递
b.如果是,在传递实参的时候以匿名内部类的形式传递
c.从new接口开始到重写方法的方法名结束,选中,删除 -> 别忘记再删除一个右半个大括号
d.在重写方法的参数和方法体之间加->

省略规则:

a.重写方法的参数类型可以省略
b.如果重写方法的参数只有一个,所在的小括号可以省略
c.如果方法体中只有一句话,所在的大括号以及分号可以省略
d.如果方法体中只有一句话,并且是带return的,那么所在的大括号,return,分号都可以省略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值