Java Lambda作用域
在深入了解Java Lambda表达式的过程中,理解Lambda作用域是非常关键的一步。Lambda表达式不仅简化了代码,还引入了特殊的作用域规则,这些规则决定了Lambda 可以访问哪些变量以及如何访问它们。
Lambda作用域基础
Lambda表达式可以访问其外部环境中的变量,这一特性称为"变量捕获"。Lambda表达式的作用域包括:
- Lambda自己的参数
- 自己内部定义的变量
- 外部环境中的变量(有特定限制)
访问外部变量的规则
Lambda表达式可以访问所在方法的参数、局部变量以及实例变量和静态变量,但有一个重要限制:
重要规则
Lambda表达式只能访问外部作用域中的最终变量(final variables)或事实上最终的变量(effectively final variables)。