首页 / JAVA / Java8 的 Lambda 表达式
Java8 的 Lambda 表达式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java8 的 Lambda 表达式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2103字,纯文字阅读大概需要4分钟。
内容图文
转:
Java8 的 Lambda 表达式
背景
Lambda 表达式是 Java8 发布的一个很重要的原因,从 Java8 开始允许将一个方法以变量的形式作为参数进行传递,并且使用这种表达式让 Java 代码变得更加的简洁。
语法格式
(params)-> expression
(params)->{
expression}
如果语句中 expression 表达式只有一句则不必使用 {} 也可以,另外还有一种就是没有参数的情况。
(
)
-
>
{
expression} 或是 ()-> expression
示例
- 使用 (params) -> expression 的方式进行表达式计算
public
static
void
main
(String[] args){
Method method1 =(int a,int b)-> a + b;int res1 = method1.math(2,3);
System.out.println(res1);
Method method2 =(int a,int b)-> a * b;int res2 = method2.math(2,3);
System.out.println(res2);}publicinterfaceMethod{
publicintmath(int a,int b);}
没有 {} 的表达式,必须是只有一句表达式的时候才可以这样返回,否则便会报错。
- 使用 (params) -> {expression} 的方式进行表达式计算
public
static
void
main
(String[] args){
Method method1 =(int a,int b)->{
return(a + b);};int res1 = method1.math(2,3);
System.out.println(res1);
Method method2 =(int a,int b)->{
return(a * b);};int res2 = method2.math(2,3);
System.out.println(res2);}publicinterfaceMethod{
publicintmath(int a,int b);}
在使用这种表达式的时候必须进行明确的指定返回的是什么,比如 return (a + b)、return (a * b) 都是要明确返回什么内容。
注意:Lambda 表达式执行完以后总体返回的必须是一个接口,比如上述中的 Method 接口。
变量作用域
在使用 Lambda 表达式时,很重要的一点就是关于变量的作用域。在表达式中如果需要引用外部变量进行运算则必须加上 final 关键字才可以,如果不加 final 时则在向后的编码中不能改变这个变量的值,如下进行举例:
public
static
void
main
(String[] args){
finalint c =3;
Method method1 =(int a,int b)->{
return(a + b + c);};int res1 = method1.math(2,3);
System.out.println(res1);}publicinterfaceMethod{
publicintmath(int a,int b);}
将变量 c 引用到表达式中,则给变量 c 加上 final 关键字使其不能改变。
public
static
void
main
(String[] args){
int c =3;
Method method1 =(int a,int b)->{
return(a + b + c);};int res1 = method1.math(2,3);
System.out.println(res1);
c =10;}publicinterfaceMethod{
publicintmath(int a,int b);}
将变量 c 引用到表达式中,并且在后续的执行中又给 c 变量赋值为 10,这种形式在 Lambda 表达式使用时便会报错。
展望
欢迎关注 “老王说编程“,每天进步一点点,您的每一个点赞、在看、分享都是在致力于减少 “攻城狮” 产出的 BUG。
展开阅读全文
本文转载自:https://blog.csdn.net/chengxuyuan_110/article/details/113786658
举报
打赏
0 赞
0 收藏
微信
QQ
微博
分享
作者的其它热门文章
程序员的职业生涯
tomcat8.0的内存优化配置及垃圾回收管理
python 人工智能最火框架TensorFlow实战
背景
Lambda 表达式是 Java8 发布的一个很重要的原因,从 Java8 开始允许将一个方法以变量的形式作为参数进行传递,并且使用这种表达式让 Java 代码变得更加的简洁。
语法格式
(params)-> expression
(params)->{
expression}
如果语句中 expression 表达式只有一句则不必使用 {} 也可以,另外还有一种就是没有参数的情况。
(
)
-
>
{
expression} 或是 ()-> expression
示例
- 使用 (params) -> expression 的方式进行表达式计算
public
static
void
main
(String[] args){
Method method1 =(int a,int b)-> a + b;int res1 = method1.math(2,3);
System.out.println(res1);
Method method2 =(int a,int b)-> a * b;int res2 = method2.math(2,3);
System.out.println(res2);}publicinterfaceMethod{
publicintmath(int a,int b);}
没有 {} 的表达式,必须是只有一句表达式的时候才可以这样返回,否则便会报错。
- 使用 (params) -> {expression} 的方式进行表达式计算
public
static
void
main
(String[] args){
Method method1 =(int a,int b)->{
return(a + b);};int res1 = method1.math(2,3);
System.out.println(res1);
Method method2 =(int a,int b)->{
return(a * b);};int res2 = method2.math(2,3);
System.out.println(res2);}publicinterfaceMethod{
publicintmath(int a,int b);}
在使用这种表达式的时候必须进行明确的指定返回的是什么,比如 return (a + b)、return (a * b) 都是要明确返回什么内容。
注意:Lambda 表达式执行完以后总体返回的必须是一个接口,比如上述中的 Method 接口。
变量作用域
在使用 Lambda 表达式时,很重要的一点就是关于变量的作用域。在表达式中如果需要引用外部变量进行运算则必须加上 final 关键字才可以,如果不加 final 时则在向后的编码中不能改变这个变量的值,如下进行举例:
public
static
void
main
(String[] args){
finalint c =3;
Method method1 =(int a,int b)->{
return(a + b + c);};int res1 = method1.math(2,3);
System.out.println(res1);}publicinterfaceMethod{
publicintmath(int a,int b);}
将变量 c 引用到表达式中,则给变量 c 加上 final 关键字使其不能改变。
public
static
void
main
(String[] args){
int c =3;
Method method1 =(int a,int b)->{
return(a + b + c);};int res1 = method1.math(2,3);
System.out.println(res1);
c =10;}publicinterfaceMethod{
publicintmath(int a,int b);}
将变量 c 引用到表达式中,并且在后续的执行中又给 c 变量赋值为 10,这种形式在 Lambda 表达式使用时便会报错。
展望
欢迎关注 “老王说编程“,每天进步一点点,您的每一个点赞、在看、分享都是在致力于减少 “攻城狮” 产出的 BUG。
本文转载自:https://blog.csdn.net/chengxuyuan_110/article/details/113786658
作者的其它热门文章
转:
Java8 的 Lambda 表达式
原文:https://www.cnblogs.com/wangtcc/p/14612737.html
内容总结
以上是互联网集市为您收集整理的Java8 的 Lambda 表达式全部内容,希望文章能够帮你解决Java8 的 Lambda 表达式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。