一、介绍
(1)Lambda表达式作为函数式接口的实例。
(2)Lambda表达式是个语法糖,简化了Java语法。
二、使用
(1)左边:形参列表,函数式接口的抽象方法的形参列表。形参类型可以省略,编译器会根据泛型推出。
(2)右边:方法体,函数式接口的抽象方法的方法体。
(3)如形参列表只有一个参数,则小括号可以省略。
(4)如方法体只有一条语句,则省略大括号,如只有一条return语句,则省略return。
public class LambdaTest {
public static void main(String[] args) {
//原写法
Supplier<String> supplier1 = new Supplier<String>() {
@Override
public String get() {
return null;
}
};
//Lambda表达式写法
Supplier<String> supplier2 = () -> new String();
}
}
三、函数式接口
(1)若一个接口只有一个抽象方法,则该接口称为函数式接口。
(2)函数式接口一般在接口上注解了@FunctionalInterface(会校验一个接口是否是函数式接口)。