1、lambda表达式语法
2、什么是函数式接口
3、lambda只能在函数式接口中使用。有哪些函数式接口,分别有什么作用
4、方法引用语法
1、语法
Lambda语法:(参数列表) -> {语句;}
当只有一个参数时,参数列表的小括弧可以省略
x -> {System.out.println(x)}
参数列表中参数的数据类型可以省略
(x,y) -> {x.compareTo(y)}
如果Lambda体只有一条语句,大括弧也可以省略
x -> return x;
如果Lambda体重只有一条return语句,retrun关键字可以省略
x -> x;
2、函数式接口
定义:只定义一个抽象方法的接口(Comparator接口、Runnable接口...),一般会在接口上添加@FuncationalInterface,
声明为函数式接口
@FunctionalInterface
public interface Comparator<T> {}
函数式接口就是为Lambda表达式准备的,或者说Lambda表达式必须实现一个函数式接口
3、 方法引用
lambda: list.forEach(x -> System.out.println(x));
方法引用:list.forEach(System.out::println);
lambda: (Student stu) -> stu.getName();
方法引用:Student::getName();
lambda: (String str, Integer i) -> Str.subString(i)
方法引用:String::subString