java--Lambda(2)表达式语法
创始人
2024-02-06 11:30:25
0

文章目录

  • 0 写在前面
  • 1 Lambda 表达式的五种形式
    • 1.1 不包含参数:
    • 1.2 包含一个参数:
    • 1.3 有多个参数
    • 1.4 表达式主体是不是一个代码块
    • 1.5 不声明参数类型
  • 2 写在末尾

0 写在前面

最基本的 Lambda 表达式,它由三部分组成具体格式是这样子的:参数 -> 具体实现;

Lambda表达式格式:()->{}

是一段带有输入参数的可执行语句块。
Lambda 表达式有这么几个特点:
可选类型声明: 不需要声明参数类型,编译器可以自动识别参数类型和参数值。
可选的参数圆括号: 一个参数可以不用定义圆括号,但多个参数需要定义圆括号;
可选的大括号: 如果函数主体只包含一个语句,就不需要使用大括号;
可选的返回关键字: 如果主体只有一个表达式返回值则编译器会自动返回值,大括号需要指明表达式返回了一个数值。

1 Lambda 表达式的五种形式

1.1 不包含参数:

()->代码块

代码实例

//接口类
public interface LambdaInterface01 {public void lambdaInterface01();
}
//测试类
public class LambdaExample01 implements LambdaInterface01 {public static void main(String[] args) {LambdaInterface01 example = () ->System.out.println("不包含参数,执行啦");example.lambdaInterface01();}@Overridepublic void lambdaInterface01() {}
}

结果截图:
在这里插入图片描述

1.2 包含一个参数:

(一个参数)->代码块

我们可以把 () 省略。

//接口类
public interface LambdaInterface02 {public int lambdaInterface02(int num);
}
//测试类
public class LambdaExample02 implements LambdaInterface02 {public static void main(String[] args) {LambdaInterface02 example = (int num) ->System.out.println("传入的数据为" + num);example.lambdaInterface02(3);}@Overridepublic void lambdaInterface02(int num) {}}

结果截图:
在这里插入图片描述

1.3 有多个参数

(参数1,参数2,……)->代码块

使用 () 把参数包裹起来,并用 , 来分割参数。上面的代码表示

//接口类
public interface LambdaInterface03 {public int lambdaInterface03(int x, int y,int z);
}
//测试类
public class LambdaExample03 implements LambdaInterface03 {public static void main(String[] args) {LambdaInterface03 example = (int x, int y, int z) -> System.out.println("三个数字之和为"+ (x+y+z));example.lambdaInterface03(10,9,8);}@Overridepublic void lambdaInterface03(int x, int y, int z) {}
}

结果截图:
在这里插入图片描述

1.4 表达式主体是不是一个代码块

带有{},{}里面是代码块

//接口类
public interface LambdaInterface04 {public void lambdaInterface04(String str);
}
//测试类
public class LambdaExample04 implements LambdaInterface04 {public static void main(String[] args) {LambdaInterface04 example = (String str)->{if (str.isEmpty()){System.out.println("字符串为空");}else {System.out.println("字符串的内容为"+str);}};example.lambdaInterface04("哈喽,我是演示带有代码块的字符串");}@Overridepublic void lambdaInterface04(String str) {}
}

结果截图:
在这里插入图片描述

1.5 不声明参数类型

参数不被声明类型
举例:

ActionListener oneArguments = event -> System.out.println("hello world");

2 写在末尾

Lambda 表达式的基本语法就基本是这样子了,简单记录一下,不仅可以这样写,还可以返回参数什么的,暂时先写这些吧,以后会找时间记录一下的。
Lambda表示式其实都是为了简化接口实例化的代码。
灵活使用吧,掌握这些知识可以帮助我们快速的辨别一个 Lambda 表达式,方便的去理解程序的意图。

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...