Lambda:局部变量需要最终变量,实例变量不需要

在lambda中,局部变量需要是最终变量,而实例变量则不需要。为什么这样?

回答:

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

考虑到匿名类,闭包和Labmdas的最简单方法是从可变范围的角度来看。想象一个为传递给闭包的所有局部变量添加的副本构造函数。

以上是 Lambda:局部变量需要最终变量,实例变量不需要 的全部内容, 来源链接: utcz.com/qa/409854.html

回到顶部