我想使用流API来跟踪变量,同时使用函数对其进行更改.

My code:

public String encoder(String texteClair) {
    for (Crypteur crypteur : algo) {
        texteClair = crypteur.encoder(texteClair);
    }
    return texteClair;
}

我有一个包含方法的类列表,我想在所有这些类中放入一个变量,就像上面代码中所做的那样.

它工作得很完美,但我想知道如何用流来实现它?

我们能用reduce()块吗?

推荐答案

使用AtomicReference,即effectively final,但其包装值可能会更改:

public String encoder(String texteClair) {
    AtomicReference<String> ref = new AtomicReference<>(texteClair);
    algo.stream().forEach(c -> ref.updateAndGet(c::encoder)); // credit Ole V.V
    return ref.get();
}

Java相关问答推荐

Spicejet日历处理-使用Selenium Java

Java加密/解密代码转换为PHP不起作用

AWS Java SDK 2(putTarget)+ MinIO:不支持您提供的授权机制.请使用AWS 4-HMAC-SHA 256

在Java中使用带限制的回归打印星形三角形

有没有方法可以修复错误错误:无法初始化主类code_editor?

如何让TaskView总是添加特定的列来进行排序?

空手道比赛条件

@ IdClass with @ Inheritance(策略= InheritanceType. SINGLE_TABLE)

所有 case 一起输入时输出错误,而单独放置时输出正确

SpringBoot+Java 17@Valid未验证POJO

JPanel透支重叠的JComcoBox

具有阻塞方法的开源库是否应该为执行提供异步选项?

测试何时使用Mockito强制转换对象会导致ClassCastException

通过Spring Security公开Spring Boot执行器端点

使用多个RemoteDatabase对象的一个线程

Kotlin Val是否提供了与Java最终版相同的可见性保证?

将stringBuilder + forloop转换为stream + map

视图被推出线性布局-Android

如何从命令行编译包中的所有类?

如何在Spring Security中设置一个任何人都可以打开的主页?