java - 如何将函数列表应用于 Java 8 中的值?

标签 java java-8

假设我有这个命令式代码:

    List<Function<T, T>> functions = ...
    T value = ...
    for (Function<T, T> function : functions) {
        value = function.apply(value);
    }

如何以函数式风格编写它(就像 Scala 中的 fold 一样)?

最佳答案

几个小时前有人问过一个Consumer...你可以将它们简化为一个函数并应用它:

@SafeVarargs
private static <T> Function<T, T> combineF(Function<T, T>... funcs) {
    return Arrays.stream(funcs).reduce(Function.identity(), Function::andThen);
}

关于java - 如何将函数列表应用于 Java 8 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44520834/

相关文章:

java - 在java 8中模拟私有(private)接口(interface)

java-8 - Java 8 流中的副作用

java - 使用 Java8 Base64 解码器的 IllegalArgumentException

java - 如何使用 Java 8 将 LinkedHashMap 列表转换为自定义对象列表

java - Windows Defender 阻止在 Java 中获取指针位置

java - 在 Java 中以简短的方式在数组中查找整数

java - 强制返回 JSON 的 Java Jersey RESTful Web 服务出现 HTTP 404 错误

java - 如何使用 EJB 3.0 实现适当的计数器 bean?

java - 在Kotlin中从Observable转换为Mono

java - 拖放到 `ListView`