Lambda表达式
Lambda表达式
作为JDK8的新特性,Lambda表达式提供了更方便的写法(匿名内部类)
Lambda表达式的本质,是一个对象,也是一个匿名函数
Lambda表达式的使用举例
(o1, o2) -> Integer.compare(o1,o2);
Lambda表达式的格式说明
-> :Lambda操作符或箭头操作符
->的左边:Lambda形参列表,对应着重写方法的形参列表
->的右边:Lambda体,对应着重写方法的方法体
类型推断*
1 | |
类型推断的功能导致了->左边的形参可以省略声明类型
Lambda实例
1 | |
当->左边的形参列表只有一个参数时,甚至可以省掉形参列表中的小括号
当->右边的执行体只有一条语句时,大括号可以省略,如有return语句,return关键字必须省略
函数式接口
如果接口中只有一个抽象方法,则此接口就成为函数式接口**@FunctionalInterface**
函数式接口所在的包:声明在java.util.function包下
四个基本的函数式接口
| 函数式接口 | 称谓 | 参数类型 | 用途 |
|---|---|---|---|
| Consumer <T> | 消费型接口 | T | 包含方法:void accept(T t) 有参无返回值 |
| Supplier<T> | 供给型接口 | 无 | 包含方法:T get() 有返回值无参数 |
| Function<T,R> | 函数式接口 | T | 包含方法:R apply(T t) 有形参有返回值 |
| Predicate<T> | 判断型接口 | T | 包含方法:boolean test(T t) 有形参有布尔类型返回值 |
Lambda表达式
http://blog.170827.xyz/2024/03/23/Lambda表达式/