gpt4 book ai didi

java - Lambdas : local variables need final, 实例变量没有

转载 作者:IT老高 更新时间:2023-10-28 13:52:45 25 4
gpt4 key购买 nike

在 lambda 中,局部变量必须是 final,但实例变量不需要。为什么会这样?

最佳答案

字段和局部变量的根本区别在于,局部变量是在 JVM 创建 lambda 实例时复制。另一方面,字段可以自由更改,因为对它们的更改也会传播到外部类实例(它们的范围是整个外部类,正如鲍里斯在下面指出的那样)。

考虑匿名类、闭包和labmdas的最简单方法是从变量范围的角度;想象一下为传递给闭包的所有局部变量添加了一个复制构造函数。

关于java - Lambdas : local variables need final, 实例变量没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25055392/

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