介绍
Java 8 引入了 Lambda 表达式,是一种新的语言特性,可以看作是一种匿名函数,它可以被传递到方法中作为参数,或者存储在变量中以后使用。
Lambda 表达式的语法如下:
(parameter1, parameter2, ...) -> { function_body }
其中,parameter1、parameter2 等表示 Lambda 表达式的参数列表,可以是零个或多个参数;function_body 表示 Lambda 表达式的函数体,可以是一个表达式或一个代码块。
Lambda 表达式的主要特性包括:
可以被视为一种函数式接口的实现,即只有一个抽象方法的接口实现;
可以通过类型推断自动确定参数类型;
可以直接访问 final 或 effectively final 的局部变量;
可以使用方法引用来简化代码。
Lambda 表达式的使用可以简化代码,提高代码的可读性和可维护性。常见的使用场景包括集合操作、线程处理、GUI 编程等。
示例
下面是一个简单的 Lambda 表达式示例,用于实现一个接口中的抽象方法:
interface MathOperation {
int operate(int a, int b);
}
public class LambdaExample {
public static void main(String args[]) {
// 使用 Lambda 表达式实现 MathOperation 接口的抽象方法
MathOperation addition = (int a, int b) -> a + b;
// 调用 MathOperation 接口的实现方法
int sum = addition.operate(10, 5);
System.out.println("10 + 5 = " + sum);
}
}
在上述示例中,定义了一个函数式接口 MathOperation
,它包含一个抽象方法 operate
,该方法接收两个整数参数并返回一个整数。
接下来,在 main
方法中使用 Lambda 表达式实现了该接口中的抽象方法,实现方法使用 a + b
表达式来计算两个参数的和。
最后,调用 addition.operate(10, 5)
方法,得到结果 15,并将结果输出到控制台。