Lambda
认识Lambda
- Lambda表达式是JDK8新增的一种语法形式;作用:用于简化匿名内部类的代码写法
格式
注意:Lambda表达式并不是说能简化全部匿名内部类的写法,只能简化函数式接口的匿名内部类
什么是函数式接口?
- 有且仅有一个抽象方法的接口。
- 注意:将来我们见到的大部分函数式接口,上面都可能会又一个@FunctionalInterface的注解,有该注解的接口就必定是函数式接口。
public class Test {
public static void main(String[] args) {
// 目标:认识Lambda表达式
// Swimming s = new Swimming() {
// @Override
// public void swim() {
// System.out.println("游泳~~~");
// }
// };
// s.swim();
Swimming s = () ->{
System.out.println("游泳~~~");
};
s.swim();
}
}
interface Swimming{
void swim();
}
Lambda表达式简化setAll方法中匿名内部类
Lambda表达式简化Comparator接口的匿名形式
Lambda表达式的省略规则
Lambda表达式的省略规则写法
- 参数类型可以省略不写。
- 如果只有一个参数,参数类型可以省略,同时()也可以省略。
- 如果Lambda表达式中的方法体代码只有一行代码,可以省略大括号不写,同时要省略分号。此时,如果这行代码是return语句,也必须去掉return不写。