Lambda 和变量超出范围

问题描述 投票:0回答:1

下午好,

我一直在尝试将带有 List 的 .forEach 转换为 lambda 表达式。我试图将列表中每个对象的值添加到变量中。有没有办法做到这一点?我知道使用 lambda,主线程中的任何变量都超出了 lambda 的范围,但是有没有办法做到这一点?

我想要工作的代码与此代码相同:

int value = 0;
list.forEach(a -> {
  value = value + a.intValue;
}

我只是想知道是否可以使用 lambda 表达式,我知道我可以使用 for 循环或 for every 循环来做到这一点。

谢谢你。

java variables lambda foreach
1个回答
0
投票

“...我只是想知道是否可以使用 lambda 表达式,我知道我可以使用 for 循环或 foreach 循环来做到这一点。...”

使用 Stream#reduce 方法。

int value = list.stream().reduce((a, b) -> a + b).get();
© www.soinside.com 2019 - 2024. All rights reserved.