lambda表达式:
-
lambda表达式的基础语法:
- 左侧:lambda表达式的参数列表
- 右侧:所需执行的功能,lambda体。
- 语法格式:左右遇一括号省,左侧推断类型省
- 无参数,无返回值 () ----> XXX;
- 一参数,无返回值 (x) ----> XXX [()可省略不写];
- 两个以上参数,lambda体中有多条语句,必须用{};
- (x,y)----> {lambda体};
- lambda表达式需要“函数式接口”的支持
- 函数式接口:接口中只有一个抽象方法的接口,
- 可以使用注解@TunctionalInterface修饰,可以检查是否是函数式接口
- 四大核心函数式接口
- Consumer<T>:消费型接口 void accept(T, t)
- Supplier<T>: 供给型接口 T get();
- Function<T,R> 函数型接口 R apply(T,t);
- Predicate<T> 断言型接口 boolean test(T,t);
-
方法引用:
- 概念:若Lambda体中的内容有方法已经实现了,我们可以使用“方法引用”;
- 三种语法格式:
- 对象 :: 实例方法名
- 类 :: 静态方法名
- 类 :: 实例方法名
- 注意事项:
- lambda体中调用方法的参数列表与返回值类型,要与函数式接口中抽象方法的函数列表和返回值类型保持一致
- 若lambda参数列表中的第一参数是实例方法的参数时,可以使用ClassName::method
- 构造器引用: ClassName :: new
- 数据引用:Type::new;