Java8-2-函数式接口
概述
仅含有一个抽象方法 的接口称之为函数式接口,JDK中的函数式接口都加上 @FunctionalInterface
注解标识
Java 内置四大核心函数式接口
函数式接口 | 参数类型 | 返回类型 | 用途 |
---|---|---|---|
Consumer |
T | void | 对类型为 T 的对象应用操作,包含方法: void accept(T t) |
Supplier |
无 | T | 返回类型为 T 的对象,包含方法:T get() |
Function |
T | R | 对类型为 T 的对象应用操作,并返回结果。结果是 R 类型的对象。包含方法:R apply(T t) |
Predicate |
T | boolean | 确定类型为 T 的对象是否满足某约束,并返回 boolean 值。包含方法 boolean test(T t) |
Consumer 消费接口
根据其中抽象方法的参数列表和返回值类型,在方法中传入参数进行消费
1 |
|
Supplier 生产型接口
根据其中抽象方法的参数列表和返回值类型,在方法中创建对象,把创建好的对象返回
1 |
|
Function 计算转换接口
根据其中抽象方法的参数列表和返回值,在方法传入的参数计算或转换,将结果返回
1 |
|
Predicate 判断接口
根据其中抽象方法的参数列表和返回值类型,在方法中对传入的参数条件判断,返回判断结果
1 |
|
函数式接口常用默认方法
and
在使用 Predicate 接口可能需要判断条件的拼接,而 and 方法相当于使用 &&
来拼接两个判断条件
1 | // 打作家中年龄大于17且姓名的长度大于1的作家 |
or
在使用 Predicate 接口可能需要判断条件的拼接,而 or 方法相当于使用 ||
拼接两个判断条件
1 | // 打印作家中年龄大于17或者姓名的长度小于2的作家 |
negate
Predicate 接口中的方法,而 negate 方法相当于在判断添加 !
表示取反
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment