Java 1.8中的功能接口Function实现了compose(),如下所示:
default <V> Function<V, R> compose(Function<? super V, ? extends T> before) {
Objects.requireNonNull(before);
return (V v) -> apply(before.apply(v));
}
我对lambda表达式的理解(可能不正确)是上面的return语句是语法糖:
return new Function<V, R>() {
R apply(V v) {
return apply(before.apply(v));
}};
此声明是非法的,因为作为接口,Function<V, R>
不应该是可实例化的。那么上面的方法是如何工作的呢?
答案 0 :(得分:2)