Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。
Lambda 表达式在Java 语言中引入了一个新的语法元素和操作符。这个操作符为 "→" , 该操作符被称为 Lambda 操作符或箭头操作符。它将 Lambda 分为两个部分:
左侧:指定了 Lambda 表达式需要的所有参数
右侧:指定了 Lambda 体,即 Lambda 表达式要执行的功能
- /**
- * @Author : 一叶浮萍归大海
- * @Date: 2023/11/20 10:14
- * @Description: 定义函数式接口
- */
- @FunctionalInterface
- public interface LambdaCalculator {
- /**
- * 加
- *
- * @param x
- * @param y
- * @return
- */
- public int add(int x, int y);
-
- /**
- * 减
- *
- * @param x
- * @param y
- * @return
- */
- default int sub(int x, int y) {
- return x - y;
- }
-
- /**
- * 乘
- *
- * @param x
- * @param y
- * @return
- */
- default int mul(int x, int y) {
- return x * y;
- }
-
- /**
- * 除
- * @param x
- * @param y
- * @return
- */
- public static int div(int x, int y) {
- return x / y;
- }
- }
- /**
- * @Author : 一叶浮萍归大海
- * @Date: 2023/11/20 10:18
- * @Description: 函数式编程
- * 口诀:
- * 1、拷贝小括号(形参列表),写死右箭头 ->,落地大括号 {方法实现}
- * 2、有且只有一个public方法,@FunctionalInterface注解增强定义
- * 3、default方法默认实现
- * 4、静态方法实现
- */
- public class LambdaCalculatorMainApp {
-
- public static void main(String[] args) {
- LambdaCalculator calculator = (x, y) -> {
- System.out.println("Hello Lambda!");
-
- return x + y;
- };
-
- System.out.println("=========> add:" + calculator.add(6, 2));
- System.out.println("=========> sub:" + calculator.sub(6, 2));
- System.out.println("=========> mul:" + calculator.mul(6, 2));
- System.out.println("=========> div:" + LambdaCalculator.div(6, 2));
- }
-
- }
1、类型为接口
2、有且只有一个public方法,@FunctionalInterface注解增强定义
3、default方法默认实现
4、静态方法实现
思考:Runnable接口为什么可以使用Lambda表达式?
拷贝小括号(),写死右箭头→,落地大括号{…}