一、概述
Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。
Lambda 表达式在Java 语言中引入了一个新的语法元素和操作符。这个操作符为 "→" , 该操作符被称为 Lambda 操作符或箭头操作符。它将 Lambda 分为两个部分:
左侧:指定了 Lambda 表达式需要的所有参数
右侧:指定了 Lambda 体,即 Lambda 表达式要执行的功能
二、案例代码
2.1、定义函数式接口
/**
* @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;
}
}
2.2、使用函数式接口
/**
* @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));
}
}
2.3、结果
三、小总结
3.1、定义函数式接口
1、类型为接口
2、有且只有一个public方法,@FunctionalInterface注解增强定义
3、default方法默认实现
4、静态方法实现
思考:Runnable接口为什么可以使用Lambda表达式?
3.2、Lambda表达式使用口诀
拷贝小括号(),写死右箭头→,落地大括号{…}