首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Lambda表达式基础(九)- lambda表达式可以使用来自它们的环境变量吗

2013-12-11 
Lambda表达式基础(9)- lambda表达式可以使用来自它们的环境变量吗?lambda表达式可以使用来自它们的环境变

Lambda表达式基础(9)- lambda表达式可以使用来自它们的环境变量吗?
lambda表达式可以使用来自它们的环境变量吗?
是的。这就是所谓的变量捕获。实例和静态变量可以不受限制地在lambda的主体被使用和改变。尽管如此,使用局部变量有更多的限制:局部变量不允许捕获除非他们确定是final的,这是在Java8中引入的一个概念。通俗地说,一个局部变量确定是final的,如果它的其初始值永远不会改变(包括lambda表达式主体内),换句话说,它声明为final将不会导致编译失败。确定的final的概念,在Java中并没有引入任何新的语义,它只是定义final变量的一个稍微不那么冗长的方式。需要捕获的局部变量是有效的final的原理阐述在这里(http://www.lambdafaq.org/what-are-the-reasons-for-the-restriction-to-effective-immutability/)。

原文链接:http://www.lambdafaq.org/can-lambda-expressions-use-variables-from-their-environment/

热点排行