Lambda表达式允许将一个函数当作参数传给方法(可通过函数式接口接收一个Lambda表达式),使代码更简洁;
jdk1.8之前使用匿名类和jdk1.8使用Lambda表达式创建线程的代码比较:

Lambda表达式语法:
- (params) -> expression
- (params) -> {statememts;}
表达式说明:
- 参数类型可以省略,编译器可以自动识别;
- 只有一个参数的时候,括号可以省略;
- 主体只有一个语句的时候,花括号可以省略;
- 主体只有一个表达式并且不写花括号的时候可以默认自动return,如果加了花括号则需要显式写入return关键字;
几个例子:




Lambda表达式注意事项:
- Lambda表达式引用的外层局部变量必须是final的,没有用final修饰的会自动认为是final变量(外部代码不可以修改变量的值);


- Lambda表达式的参数不能跟外边局部变量同名,表达式内部变量也不能跟局部变量同名;


本文深入探讨了Java 8中的Lambda表达式,它简化了函数式编程,使得代码更加简洁。通过实例展示了如何使用Lambda表达式创建线程,对比了与JDK1.8之前匿名类的区别。同时,强调了Lambda表达式对局部变量的限制,以及与外部变量和内部变量的命名规则。了解这些要点,有助于提升Java编程效率。
2657

被折叠的 条评论
为什么被折叠?



