第3章 Lambda表达式
Lambda表达式,可以简洁地表示一个行为。
通过构建Lambda、类型推断、函数式接口、方法引用,写出更简洁、更灵活、更易读的代码。
3.1 Lambda管中窥豹
3.2 在哪里以及如何使用Lambda
3.3 把Lambda付诸实践:环绕执行模式
3.4 使用函数式接口
3.5 类型检查、类型推断以及限制
3.6 方法引用
3.7 Lambda和方法引用实战
3.8 复合Lambda表达式的有用方法
3.9 数学中的类似思想
3.10 小结
本章中的关键概念。
- Lambda表达式与匿名函数功能等效,形式类似:没有名称,包含参数列表、函数主体、返回类型,异常抛出列表;
- 使用Lambda表达式,简洁地传递代码;
- 函数式接口是只声明了一个抽象方法的接口,在接受函数式接口的地方才能使用Lambda表达式;
- Lambda表达式允许内联,实现函数式接口的抽象方法,整体成为函数式接口的实例;
- Java 8在java.util.function包中定义了一些常用的函数式接口,包括Supplier
、Consumer 、Predicate 、Function<T, R>,如3.2.2 函数描述符所示; - 为提高性能,避免自动装箱,对于泛型的函数式接口提供了对应基本类型的函数式接口,包括IntPredicate、IntToLongFunction,如3.2.2 函数描述符所示;
- 环绕执行模式(初始化 + 执行业务 + 清理),结合行为参数化和Lambda表达式,提高代码的灵活性和可重用性;
- Lambda表达式所需要代表的类型称为目标类型;
- 方法引用复用并传递现有的方法实现;
- Comparator、Predicate和Function等函数式接口提供了复合的方法,组合多个简单的Lambda表达式,构成复杂逻辑应用;