要点:将行为像数据一样传递。
一、几种形式
1、没有参数,用()表示
() ->System.out.println("Hello World");
2、有且仅有一个参数,省略参数的括号
e ->System.out.println(e+"Hello World");
3、表达式为一段代码块,使用大括号;只有一行也可以使用大括号
() ->{
System.out.println("Hello");
System.out.println("World");
};
4、多个参数
BinaryOperator<Long> add = (x,y)->x+y;
创建一个函数,用来计算两个数字相加的结果,这里add是一个变量
5、指定参数的类型
BinaryOperator<Long> add = (Long x,Long y)->x+y;
指定参数类型时,需要小括号
注意:Lambda表达式的参数类型由编译器推断得出,类似泛型,(菱形操作符)
二、函数接口
定义:只有一个抽象方法的接口,用来表示Lambda表达式的类型
JDK中最重要的几个函数接口
接口 参数 返回类型 场景
Predicate<T> T boolean 判断
Consumer<T> T void 输出一个值
Function<T,R> T R 获取对象的一个属性
Supplier<T> None T 工厂方法
BinaryOperator<T> (T,T) T 逻辑非
UnaryOperator<T> T T 求两数乘积