1.函数式接口

(1)定义:有且只有一个抽象方法的接口称为函数式接口。
(2)用注解@FunctionalInterface来标识。
【tips】:写代码时应该主动加上这个标识来告诉别人这是个函数式函数式接口。
(3)函数式接口作形参:当方法的形参类型是函数式接口时,可以用Lambda表达式作为形参。
(4)函数式接口返回值: 当方法的返回值类型是函数式接口时,可以用Lambda表达式作为返回值。

2.Supplier接口

(1)Supplier<T>:也被称为生产型接口,如果指定了接口的泛型是什么类型,那么该接口中的get方法就会产生该类型的数据。
(2)get方法:
T get() 获得结果
【tips】:该方法是无参方法,它会按某种实现逻辑返回一个数据。

3.Consumer接口

(1)Consumer<T>:也被称为消费型接口,有两个方法。
(2)方法:
void accept(T t)
对给定的参数t执行一个Lambda表达的操作。
default Consumer<T> andThen(Consumer<? super T> after)
返回一个组合Consumer ,先执行该消费操作,然后执行after操作。

4.Predicate接口

(1)Predicate<T>:通常用来判断参数是否满足Lambda表达式给出的条件。
(2)方法:
boolean test(T t)
对给定的参数t进行判断,判断条件由Lambda表达式给出,并返回一个boolean值。
default Predicate<T> and(Predicate<? super T> other)
返回一个组合判断,对应短路
default Predicate<T> or(Predicate<? super T> other)
返回一个组合判断,对应短路或
default Predicate<T> negate()
返回一个逻辑的否定,对应

5.Function接口

(1)Function<T,R>:通常用来接受一个参数并返回一个结果。
(2)方法:
R apply(T t)
将参数t经过Lambda表达式处理后返回结果R。
default <V> Function<T,V> andThen(Function<? super R,? extends V> after)
返回一个组合函数,先将该函数应用于其输入,然后将 after函数应用于结果。