假设我有这个命令式代码:
List<Function<T, T>> functions = ...
T value = ...
for (Function<T, T> function : functions) {
value = function.apply(value);
}
Run Code Online (Sandbox Code Playgroud)
我如何在功能样式中写这个(就像Scala中的折叠一样)?
Eug*_*ene 12
几个小时前刚刚问过这个Consumer...你可以将它们减少到一个函数并应用:
@SafeVarargs
private static <T> Function<T, T> combineF(Function<T, T>... funcs) {
return Arrays.stream(funcs).reduce(Function.identity(), Function::andThen);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2579 次 |
| 最近记录: |