一、函数式接口概述
定义:有且只有一个抽象方法
注解:@FunctionalInterface
函数式接口作为参数:Lambda表达式作为参数传递
函数式接口作为返回值:Lambda表达式作为结果返回
二、Supplier接口
Supplier<T>
:结果供应商
指定类型,就能get此类型的值
方法:T get()
public static void main(String[] args) {
int i = doSupplier(()->123);
System.out.println(i);
}
public static int doSupplier(Supplier<Integer> s) {
return s.get() + 321;
}
三、Consumer接口
Consumer<T>
:消费型接口
方法:void accept(T t)
:执行操作andThen(...)
:组合操作
public static void main(String[] args) {
doConsumer("wmh",System.out::println);
}
public static void doConsumer(String name, Consumer<String> con){
con.accept(name);
}
四、Predicate接口
Predicate <T>
方法:boolean test(T t)
:对给定的参数进行判断(判断逻辑由Lambda表达式实现,返回布尔值negate()
: 返回一个逻辑的否定,对应逻辑非and(Predicate other)
:返回一个组合判断,对应短路与or(Predicate other)
:返回一个组合判断,对应短路或
五、Function接口
Function<T,R>
通常用于对参数进行处理,转换(处理逻辑由Lambda表达式实现),然后返回一个新的值
方法:Rapply(T t)
:将此函数应用于给定的参数default <V> Function andThen(Function after)
:返回一个组合函数,首先将该函数应用于输入,然后将after函数应用于结果