「这是我参与11月更文挑战的第10天,活动详情查看:2021最后一次更文挑战」。
1.为什么使用lambda表达式?
- 避免匿名内部类定义过多
- 可以让代码看起来很简洁
- 去掉一堆没有意义的代码,只留下核心的逻辑。
补充: 函数式接口是lambdab表达式的关键所在。
函数式接口的定义: 任何接口,如果只包含唯一一个抽象方法,那就是函数式接口。 如:public interface Runnable{pulic abstract void run();}。我们就可以通过lambda表达式来创建该接口的对象
2.lambda简化历程
须知:lambda表达式是java 8的新特性,为了适应人们需求,简化代码量,前提就是需要函数式接口。
lambda的简化顺序 :外部类->静态内部类->局部内部类->匿名内部类->lambda
具体实现:
- 首先定义一个函数式接口
定义一个函数式接口ILike,有一个lambda()方法。
- 外部类实现方法
创建一个外部Like类,实现ILike接口,输出一个信息。主方法测试:创建Like对象,来调用lambda()方法。
- 静态内部类
创建一个静态内部类Like2,实现ILike接口,主方法测试:创建Like2的对象,来调用lambda方法。
- 局部内部类 创建一个局部内部类Like3,实现ILike接口,主方法测试:创建Like3的对象,来调用lambda方法。
- 匿名内部类
匿名内部类,直接获得类对象,调用lambda()方法。
- lambda简化
lambda以不同的表达式形式直接获取对象,调用lambda()方法。
3.lambda简化形式
基础语法:
():用来描述参数列表
{}:用来描述方法体 有时可以省略
->: Lambda运算符 读作goes to
简化规则:
以有参形式,来说明。
1.简化参数类型
可以不写参数类型,但是必须所有参数都不写:
2.简化参数小括号
如果只有一个参数则可以省略参数小括号省略:
3.简化方法体大括号
- 如果方法体只有一条语句,则可以省略方法体大括号
- 如果方法体中唯一的一条语句是一个返回语句 ,则省略大括号的同时也必须省略return。