Java Lambda 表达式语法
分类:
文章
•
2024-10-17 13:00:10
- Lambda 表达式, 实际上是 Java 的语法糖, 用于简化匿名内部类的编写
- 使用
->
表示 lambda 表达式, 左侧是参数列表, 使用小括号 ( )
包裹形参参数名, 右侧是方法所需要执行的代码, 使用大括号 { }
包裹
- 注意: 形参声明时, 不要声明数据类型, 因为函数式接口有且只能有一个抽象方法, Java 编译器是可以推断出我们要实现的方法, 所以数据类型就不用显式声明, 如果声明, 会报错
- 特殊的: 当没有形参时, 仍然需要声明左侧, 即固定使用
( )
来表示我是 lambda 表达式
- 当右侧执行体只有一句代码时, 可以省略大括号和分号 (如果是带返回值的 lambda 表达式, 那么 return 也要一并省略)

- 当其他静态方法 / 实例方法的形参列表和返回值与我们函数式接口的形参列表和返回值完全一致时, 还可以利用方法引用 (方法引用本质上也是 lambda 表达式) 的语法 (双冒号
::
) (类名::方法名
(注意: 方法名没有小括号, 没有参数) ), 更加简洁地编写代码

上面的例子表示 emp1 作为 Employee 类的 compareTo 方法调用者, emp2 作为 Employee 类的 compareTo 方法形参, 而返回值就是该函数式接口的返回值, 所以才能这么编写