此函数接口相对java8是基础
仅有一个抽象方法的接口可以称之为函数式接口,同时在Function接口中你可能看到的不是一个方法,java8的新特性中有一个是接口可以有默认的接口实现。所有compose,andThen,identity三个方法都符合函数式接口的允许范围。那么他唯一的一个抽象接口是apply。
方法解析
Function<T, R>接口定义
注意:上面有@FunctionalInterface这个注解,此注解用于标注函数接口,如果不符合函数接口的定义标准那么编译器就会报错。
有两个参数,一个是输入,一个输出,先这么理解。T输入 R输出。
R apply(T t)
输入参数T,经过该函数处理得到R。也就是将参数应用于这个函数。
<V> Function<V, R> compose(Function<? super V, ? extends T> before)
先来波参数解析吧。
before 这个参数也是一个函数接口。也就是说他可以执行一系列的操作。
那么这个函数的大致作用就是此函数有两个参数先将传进来的这个参数传入到before这个函数里面进行处理一下,然后before这个函数的返回结果再作为一个参数传递给外面的这个函数。若before为空,则会抛出异常。
<V> Function<T, V> andThen(Function<? super R, ? extends V> after)
参数结构和以上面的雷同。但是应用方式是相反的。 这个是先将参数应用到外层函数,然后得到的结构再传入after进行处理得到结果。
<T> Function<T, T> identity()
最后一个是用来返回这个函数的参数。