Java学习笔记之Function方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yangshuaionline/article/details/85327363

定义:JDK1.8中的新特性,表示接受一个参数并生成结果的函数。
其中:T 为输入的类型。R为函数结果的类型。
下面看该接口中的每一个方法:

  1. R apply(T t);核心方法,把T转换成R返回。

  2. default Function<V, R> compose(Function<? super V, ? extends T> before){},此方法的官方解释为:

    返回首先将{@code before}函数应用于其输入的组合函数,然后将此函数应用于结果。 如果对任一函数的求值抛出异常,则将其转发给组合函数的调用者。

    看了之后一脸懵,然后看代码具体逻辑,首先对before进行了NonNull验证,然后返回一个组合函数,函数首先用before调用apply函数,把V转换成T,然后重新创建一个Function,传入T转换成R。我个人的理解就是如果有复杂的多种类型转换,就调用这个函数。如果仅转换两次,可以直接调用此方法,如果超过两次,需要重写。规定A:如果before为null,抛出NullPointerException。

  3. default Function<T, V> andThen(Function<? super R, ? extends V> after){}:和compose方法差不多,区别就是,andthen的after的apply方法接收的参数是一个组合,而compose方法是before先调用一次apply,转换的结果传给组合。

  4. static Function<T, T> identity():一个总是返回其输入参数的函数。

猜你喜欢

转载自blog.csdn.net/yangshuaionline/article/details/85327363