gpt4 book ai didi

java - 终端操作评估中间操作

转载 作者:行者123 更新时间:2023-11-29 10:08:36 24 4
gpt4 key购买 nike

假设我有一个字符串列表,我想将这些字符串用作流利构建器的输入。

List<String> scripts;

//initialize list

ScriptRunnerBuilder scriptRunnerBuilder = new ScriptRunnerBuilder();

BiFunction<String,ScriptRunnerBuilder,ScriptRunnerBuilder> addScript =
(script,builder) -> builer.addScript(script);

scriptRunnerBuilder = scripts.stream.map(script ->
addScript.apply(script,scriptRunnerBuilder)).......

scriptRunnerBuilder.build();

我可以使用哪个终端操作以便为列表中的所有元素调用 addScript 函数?

问题是 ScriptRunnerBuilder 是不可变的,因此 ScriptRunnerBuilder.addScript() 返回一个新的 ScriptRunnerBuilder 对象而不是修改现有的对象——所以我不能只使用一个 foreach。

我的意图是携带 addScript() 调用的结果并将其用作流中下一个元素的输入

最佳答案

以最简单的方式,这应该:

// create your builder
ScriptRunnerBuilder builder = new ScriptRunnerBuilder();

// add all scripts
scripts.forEach(script-> builder.addScript(script))

build results
scriptRunnerBuilder.build();

因为builder聚合了所有的数据,而你在forEach lambda之外创建了它,你可以直接访问它。这将导致更少的代码和相同的结果。

或者如@Holger 所建议的那样:

scripts.forEach(builder::addScript);

关于java - 终端操作评估中间操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55279576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com