Lambda表达式和Java闭包之间的区别?
Java支持 lambda表达式,但不支持Closures。Lambda表达式是一个匿名函数,可以定义为参数。的闭包 是像代码段或代码块可以而不方法或类一起使用。这意味着闭包可以访问未在其参数列表中定义的变量,也可以将其分配给变量。
语法
([comma seperated parameter-list]) -> {body}在下面的示例中,create()方法的寿命很短,它具有局部变量“value”,当我们退出 create()方法时,它将消失。该方法完成后,该方法将闭包返回给main()方法中的调用者。在此过程中,它将从其堆栈中删除变量“value”,并且lambda表达式已执行。
示例
public class LambdaExpressionClosureTest {
public static void main(String[] args) {
Runnable runnable = create();
System.out.println("In main() method");
runnable.run();
}
public static Runnable create() {
int value = 100;
//Lambda表达式
Runnable runnable = () -> System.out.println("The value is: " + value);
System.out.println("In create() method");
return runnable;
}
}输出结果
In create() method In main() method The value is: 100
热门推荐
3 祝福语简短的微信
10 幼儿祝福语大全简短贺卡
11 感谢教官文案祝福语简短
12 鼠年同事祝福语简短创意
13 元旦祝福语 简短独特群发
14 妈咪跟我生日祝福语简短
15 给儿子新婚祝福语简短
16 伴娘祝福语长文案简短
17 恭喜高考完祝福语简短
18 生日祝福语送老公简短