基本概念
Lambda表达式,本质上是一个匿名函数,可以作为参数传递给其他函数或者在代码中直接定义和使用。它具有以下几点特性:
- 匿名:lambda表达式不像面向对象的方法一样,有确定的名称。
- 函数:虽然lambda不是对象的方法,属于某个特定的类。但是lambda表达式一样的有参数列表、函数主体 返回类型和异常声明
- 传递:lambda表达式可以作为参数传递
- 简洁:无需像匿名类一样有固定模板的代码,lambda写得少而想得多。
语法格式
注意事项
1.函数式接口必须只有一个抽象方法,
比如我们定义一个接口,里面只有一个方法,我们可以使用注解@FunctionalInterface 标记该接口为函数式接口,我们就可以使用 Lambda表达式创建其实现。
示例代码:
2.参数列表的数据类型会自动判断
因此在参数列表中,我们不需要定义参数类型,我们只需要定义参数名就可以了。在下文示例代码中,我们就将参数类型Student省略了,只定义了o1和o2。
3.只有一条执行语句,可以省略{}
若方法体只有一条执行语句,如果没有返回值,可以直接将{}去掉,若有返回值,则还需要省略return 关键字才能将{}去掉。我们将上图代码修改调整后如下所示: