有效的final变量是指没有显式声明final的局部变量,一旦初始化就不能更改。lambda表达式只能在外部作用域中使用局部变量,前提是它们实际上是final的。
(optional) (Arguments) -> body
在下面的示例中,“ size” 变量 未声明为final,但它是有效的final,因为我们没有修改“ size” 变量的值。
interface Employee { void empData(String empName); } public class LambdaEffectivelyFinalTest { public static void main(String[] args) { int size = 100; Employee emp = name -> { //lambda表达式 System.out.println("员工实力为: " + size); System.out.println("员工姓名为: " + name); }; emp.empData("Adithya"); } }
输出结果
员工实力为: 100 员工姓名为: Adithya