Lambda表达式的基本使用
概述
介绍
Lambda表达式就是对某一个接口方法的实现,可以替代我们以前经常写的匿名内部类来实现接口方法,本质是一个匿名函数
使用的要求
接口必须是函数式接口,也就是说这个接口有且仅有一个抽象方法,但是可以有多个非抽象方法
函数式接口
函数式接口示例代码如下:(add是抽象方法,add1和add2是非抽象方法)
1 |
|
使用@FunctionalInterface
注解后,编译器将会强制检查该接口是否确实有且仅有一个抽象方法,否则将会报错。不使用这个注解也是可以的,这个注解只是用来检查是否是函数式接口,没有其它作用,只要接口只有一个抽象方法那它就是函数式接口,和注解没有任何关系
Lambda表达式格式
(参数列表)->{方法体}
说明:
()
:用来描述参数列表
{}
:用来描述方法体
->
:Lambda运算符,可以叫做箭头符号,或者goes to
代码实现
定义函数式接口
1 |
|
使用匿名内部类
1 | package lambda; |
使用Lambda表达式
在上面的接口中,int a, int b
是参数列表,方法体是接口的实现(根据接口名称应该知道方法体是return a+b;
),所以Lambda表达式如下所示:
1 | package lambda; |
Lambda表达式简写规则
参数列表
参数类型可以省略,因为可以根据接口方法知道参数的类型
当参数只有一个时,括号()
可以省略,如果有两个及以上的参数括号不可以省略
方法体
当方法体的语句只有一条时,可以省略大括号{}
简写上面的Lambda表达式
根据Lambda表达式简写规则可以将上面的代码简写,代码如下所示:
1 | package lambda; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LeDao's Blog!
评论