函数式接口


函数式接口

1. 函数式接口概述: (有且仅有一个抽象方法的接口)

  • java的函数式编程体现的就是Lambda表达式
  • 所有函数式接口就是可以适用于Lambda使用的接口
  • 只有确保接口中有且仅有一个抽象方法,java中的Lambda才能顺利地进行推导

2. 常用的函数式接口

  1. Supplier接口
  2. Consumer接口
  3. Pr edicate接口
  4. Function接口

3. Supplier接口

  • Supplier < T > 包含一个无参构造方法
  1. T get() :获得结果
  2. 该方法不需要参数,它会按照某种逻辑(由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表达式实现),然后返回一个新的值

文章作者: han yue
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 han yue !
评论
  目录