JDK1.8使用的接口类。在CompletableFuture中大量的使用了这些函数式接口。
注:这些声明大量应用于方法的入参中。像thenApply和thenAccept这俩就是一个用Function一个用Consumer
而lambda函数正好是可以作为这些接口的实现。例如 s->{return 1;} 这个就相当于一个Function。因为有入参和返回结果。
(1)Function
(2)Consumer
对于前面有Bi的就是这样的。BiConsumer就是两个参数的。
(3)Predicate这个接口声明是一个入参,返回一个boolean
(4)supplier
可以根据方法出入参的类型和数量来进行区分:
顺带提一句,CompletableFuture中的常用方法的命名基本是按照这个接口名称来的,可以方便记忆,如RunAsync方法和SupplyAsync方法就是一个入参使用Runable接口,该方法无返回值;一个就是使用Supplier接口,该方法有返回值
refer: https://blog.csdn.net/finalheart/article/details/87615546