函数式接口
1. 函数式接口概述: (有且仅有一个抽象方法的接口)
- java的函数式编程体现的就是Lambda表达式
- 所有函数式接口就是可以适用于Lambda使用的接口
- 只有确保接口中有且仅有一个抽象方法,java中的Lambda才能顺利地进行推导
2. 常用的函数式接口
- Supplier接口
- Consumer接口
- Pr edicate接口
- Function接口
3. Supplier接口
- Supplier < T > 包含一个无参构造方法
- T get() :获得结果
- 该方法不需要参数,它会按照某种逻辑(由Lambda表达式实现)返回一个数据
Supplier< T > 接口也被成为生产型接口,指定接口的泛型是什么类,那么接口中的get()方法就生产什么类型的数据供我们使用
例:
private static int getMax(Supplier<Integer> sup) { return sup.get(); }
4. Consumer接口
- Consumer< T > 包含两个方法
- void accepr(T t):对给定的参数执行此操作
- default Consumer< T > andThen(Consumer after):返回一个组合的Consumer,依次执行此操作,然后执行after操作
- Consumer< T > 接口也被称为消费型接口,它消费的数据由泛型指定。
5. Predicate接口
Predicate<T> 常用的四个方法
1. boolean test(T t) 对给定的参数进行判断(判断逻辑由Lambda表达式实现),返回一个布尔值
2. default Predicate<T> negate(): 对应逻辑非
3. default Predicate<T> and(Predicate other): 对应逻辑与
4. default Predicate<T> or(Predicate other): 对应逻辑或
Predicate<T> 接口通常用于判断参数是否满足指定的条件
6. Function接口
Function<T,R> 常用的两种方法
1. R apply(T t): 将此函数应用于给定的参数
2. default <V> Function andThen(Function after):首先将该函数应用于输入,然后将after函数应用于结果
Function<T,R> 接口通常用于对参数进行处理,转换(处理逻辑与Lambda表达式实现),然后返回一个新的值