1. 表示接受一个参数并产生结果的函数。
    2. 这是一个功能接口,其功能方法是apply(Object)
    3. 自从:
    4. 1.8
    5. 类型参数:
    6. <T> 函数输入的类型
    7. <R> - 函数结果的类型
    8. @FunctionalInterface
    9. public interface Function<T, R> {
    10. 将此函数应用于给定的参数。
    11. 参数:
    12. t 函数参数
    13. 返回:
    14. 函数结果
    15. R apply(T t);
    16. 返回一个组合函数,该函数首先将before函数应用于其输入,然后将此函数应用于结果。 如果对任一函数的评估引发异常,则将其转发给组合函数的调用者。
    17. 参数:
    18. before 在应用此函数之前要应用的函数
    19. 类型参数:
    20. <V> before函数和组合函数的输入类型
    21. 返回:
    22. 首先应用before函数然后应用此函数的组合函数
    23. 抛出:
    24. NullPointerException 如果之前为空
    25. 也可以看看:
    26. andThen(Function)
    27. default <V> Function<V, R> compose(Function<? super V, ? extends T> before) {
    28. Objects.requireNonNull(before);
    29. return (V v) -> apply(before.apply(v));
    30. }
    31. 返回一个组合函数,该函数首先将此函数应用于其输入,然后将after函数应用于结果。 如果对任一函数的评估引发异常,则将其转发给组合函数的调用者。
    32. 参数:
    33. after - 应用此功能后应用的功能
    34. 类型参数:
    35. <V> after函数和组合函数的输出类型
    36. 返回:
    37. 首先应用此函数然后应用after函数的组合函数
    38. 抛出:
    39. NullPointerException 如果 after 为空
    40. 也可以看看:
    41. compose(Function)
    42. default <V> Function<T, V> andThen(Function<? super R, ? extends V> after) {
    43. Objects.requireNonNull(after);
    44. return (T t) -> after.apply(apply(t));
    45. }
    46. 返回一个始终返回其输入参数的函数。
    47. 类型参数:
    48. <T> - 函数的输入和输出对象的类型
    49. 返回:
    50. 始终返回其输入参数的函数
    51. static <T> Function<T, T> identity() {
    52. return t -> t;
    53. }