Lambda 表达式是一种匿名函数,或者可以理解为一种功能上类似于方法的代码块。它可以作为参数传递给方法或存储在变量中,并且可以在需要时被调用执行。Lambda 表达式主要用于简化函数式编程中的代码,并且提供了一种更简洁、灵活的方式来传递行为。
Lambda 表达式的语法格式如下:
(parameters) -> expression
或
(parameters) -> { statements; }
其中,parameters 指定了 Lambda 表达式的参数列表,可以是一个或多个参数,也可以为空。->
是箭头符号,用于将参数列表和表达式或语句体分隔开。expression 是单个表达式,而 { statements; } 是语句块。
Lambda 表达式的使用步骤如下:
- 定义函数式接口(Functional Interface):Lambda 表达式依赖函数式接口,即只有一个抽象方法的接口。可以使用现有的函数式接口,例如 Java 8 内置的
java.lang.Functional
包中的接口,或者自定义一个函数式接口。 - 编写 Lambda 表达式:根据函数式接口的定义,编写 Lambda 表达式,并根据需要指定参数列表和表达式或语句体。
- 调用 Lambda 表达式:将 Lambda 表达式作为参数传递给接受函数式接口作为参数的方法,或直接存储在变量中。
以下是一个简单的示例,演示如何使用 Lambda 表达式来计算两个数的和:
interface Calculator {
int calculate(int a, int b);
}
public class LambdaExample {
public static void main(String[] args) {
Calculator addition = (a, b) -> a + b;
int result = addition.calculate(5, 3); // 调用 Lambda 表达式
System.out.println("结果:" + result);
}
}
在上述示例中,我们定义了一个函数式接口 Calculator
,它有一个方法 calculate
。然后使用 Lambda 表达式 (a, b) -> a + b
实现了该接口的方法,并将其赋值给变量 addition
。最后,我们通过调用 addition.calculate(5, 3)
来计算两个数的和,并打印结果。
需要注意的是,Lambda 表达式只能用于函数式接口。函数式接口可以通过 @FunctionalInterface
注解来显式标识,这样编译器会检查接口是否符合函数式接口的要求。