Lambda 表达式的不同形式
1。 不包含参数
Runnable runnable = ()-> System.out.println("Helloworld!");
- 只包含一个参数
ActionListener actionListener = event -> System.out.println("Click!");
- 主体可以是一段代码
Runnable runnable1 = () -> {
System.out.println("first line");
System.out.println("second line");
};
- 可以包含多个参数
BinaryOperator<Long> add = (x, y) -> x + y;
5.可以显示声明数据类型
BinaryOperator<Long> addExplicit = (Long x, Long y) -> x + y;
函数接口
函数接口是只有一个抽象方法的接口,用作Lambda 表达式的类型
Java中重要的函数接口
接口 | 参数 | 返回类型 | 示例 |
---|---|---|---|
Predicate<T> |
T | boolean | 这张唱片已经发行了吗 |
Consumer<T> |
T | void | 输出一个值 |
Function<T,R> |
T | R | 获得Artist 对象的名字 |
Supplier<T> |
None | T | 工厂方法 |
UnaryOperator<T> |
T | T | 逻辑非 |
BinaryOperator<T> |
(T,T) | T | 求两个数的乘积 |
总结
- Lambda 表达式是一个匿名方法,将行为像数据一样进行传递。
- Lambda表达式的常见结构:BinaryOperator add = (x, y) → x + y。
- 函数接口指仅具有单个抽象方法的接口,用来表示 Lambda表达式的类型。