目录
1 简介说明
Lambda表达式是jdk8开始新增的一种语法形式;
作用:用于简化匿名内部类的代码写法。
2 格式
(被重写方法的形参列表)->{
被重写方法的方法体代码。
}
3 示例代码
public class Lambda1 {
public static void main(String[] args) {
//目标:认识Lambda表达式。
/* Animal a = new Animal() {
@Override
public void run() {
System.out.println("狗跑的贼快~~~~·");
}
};
a.run();*/
//注意:Lambda表达式并不是说能简化全部匿名内部类的写法,只能简化函数式接口的匿名内部类。
//错误的代码。
/* Animal a = () ->{
System.out.println("狗跑的贼快~~~~·");
};
a.run();*/
/* Swimming swimming = new Swimming() {
@Override
public void swim() {
System.out.println("学生快乐的游泳~~~~·");
}
};
swimming.swim();*/
Swimming swimming =() ->{
System.out.println("学生快乐的游泳~~~~·");
};
swimming.swim();
}
}
interface Swimming {
void swim();
}
abstract class Animal {
public abstract void run();
}
4 函数式接口
有且仅有一个抽象方法的接口。
注意:
1、Lambda表达式只能简化函数式接口的匿名内部类!!!
2、开发中见到的大部分是函数式接口,上面都可能会有一个@FunctionalInterface的注解,有该注解的接口就必定是函数式接口。
5 Lambda表达式省略规则
Lambda表达式的省略写法(进一步简化Lambda表达式的写法)
1、参数类型可以省略不写。
2、如果只有一个参数,参数类型可以省略,同时()也可以省略。
3、如果Lambda表达式中的方法体代码只有一行代码,可以省略大括号不写,同时要省略分号!此时,如果这行代码是return语句,也必须去掉return不写。