表示接受一个参数并产生结果的函数。
这是一个功能接口,其功能方法是apply(Object) 。
自从:
1.8
类型参数:
<T> – 函数输入的类型
<R> - 函数结果的类型
@FunctionalInterface
public interface Function<T, R> {
将此函数应用于给定的参数。
参数:
t – 函数参数
返回:
函数结果
R apply(T t);
返回一个组合函数,该函数首先将before函数应用于其输入,然后将此函数应用于结果。 如果对任一函数的评估引发异常,则将其转发给组合函数的调用者。
参数:
before – 在应用此函数之前要应用的函数
类型参数:
<V> – before函数和组合函数的输入类型
返回:
首先应用before函数然后应用此函数的组合函数
抛出:
NullPointerException – 如果之前为空
也可以看看:
andThen(Function)
default <V> Function<V, R> compose(Function<? super V, ? extends T> before) {
Objects.requireNonNull(before);
return (V v) -> apply(before.apply(v));
}
返回一个组合函数,该函数首先将此函数应用于其输入,然后将after函数应用于结果。 如果对任一函数的评估引发异常,则将其转发给组合函数的调用者。
参数:
after - 应用此功能后应用的功能
类型参数:
<V> – after函数和组合函数的输出类型
返回:
首先应用此函数然后应用after函数的组合函数
抛出:
NullPointerException – 如果 after 为空
也可以看看:
compose(Function)
default <V> Function<T, V> andThen(Function<? super R, ? extends V> after) {
Objects.requireNonNull(after);
return (T t) -> after.apply(apply(t));
}
返回一个始终返回其输入参数的函数。
类型参数:
<T> - 函数的输入和输出对象的类型
返回:
始终返回其输入参数的函数
static <T> Function<T, T> identity() {
return t -> t;
}