gpt4 book ai didi

java - 在 Java 中使用数组而不是 int 来处理 "potentially final variable"。

转载 作者:行者123 更新时间:2023-11-29 07:34:11 25 4
gpt4 key购买 nike

这里是一个使用数组 int[] 而不是 int 的代码示例。所有包含 i 的行都显示在下面的代码中。该方法由多个线程执行。

int[] i = {0}; //So the stream forEach doesn't complain about a potentially final variable to use...
result.forEach (currentOptionRow -> {
String bgColor = (0 == i[0] % 2) ? "eaeaea" : "ffffff";

//Create HTML, use bgColor to generate alternating background
i[0]++;
});

这是获取可变计数器的解决方法吗?为什么它是“可能最终的”? (没有 final 关键字,为什么会引起关注?)

最佳答案

这是处理 lambda 要求所必需的解决方法。 lambda 的局部变量必须是最终的或实际上是最终的。

不,如果你想使用 lambda,你不能用 int 替换它。

您可以更改存储在final int[] 中的元素的值。这就是为什么您可以在 lambda 内部将它用作计数器的原因。

关于java - 在 Java 中使用数组而不是 int 来处理 "potentially final variable"。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38080564/

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