在Java的lambda表达式中如何使用final或有效的final变量?

有效的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