个人简介
- 大家好,我是翰慧腾。一名正在努力学JAVA的大一小白,本文章为初学的笔记,希望各位多多指教。💙
- 欢迎点赞+收藏+留言💜
- 热爱可抵岁月漫长🧡
概述:Lambda表达式是jdk8开始的一种新语法,作用就是简化匿名内部类的代码写法。但是Lambda表达式只能简化函数式接口的匿名内部类的写法形式。
Lambda是一个匿名函数,我们可以把Lambda表达式理解为一段可以传递的代码,可以写出更简洁、更灵活的代码 。
函数式接口:首先是接口,其次接口内只有一个抽象方法的形式。通常我们可以在接口上加一个@FunctionalInterface注解,标注该接口必须是满足函数式接口。
匿名内部类及Lambda表达式效果见代码:
package CSDN1;
public class Lambda_ {
public static void main(String[] args) {
Animal animal=new Animal() {
//匿名内部类
@Override
public void eat() {
// TODO 自动生成的方法存根
System.out.println("猫吃鱼");
}
};//不要丢掉分号
//Lambda表达式
Animal a=()->{
System.out.println("猫吃老鼠");
};//不要丢掉分号
animal.eat();
a.eat();
}
}
@FunctionalInterface
interface Animal{
void eat();
}
Lambda表达式的省略写法:
- 参数类型可以省略不写
- 如果只有一个参数,参数类型可以省略,小括号也可以省略
- 如果Lambda表达式的方法体只有一行,可以省略大括号和分号
- 如果Lambda表达式的方法体只有一行代码,可以省略大括号不写。此时,如果这行代码是return语句,必须省略return不写,同时也必须省略分号不写。