Java Lambda表达式可以用来创建匿名函数(anonymous function),这也是它的主要用途之一。
例如,我们可以定义一个接口与抽象方法:
public interface MathOperation {
int operate(int a, int b);
}
然后使用Lambda表达式创建该接口的一个实现(匿名函数):
MathOperation add = (x, y) -> x + y;
这里,(x, y) -> x + y就是一个Lambda表达式,它实现了MathOperation接口,所以可以赋值给MathOperation类型的变量。
这相当于创建了一个匿名的加法函数。我们可以调用它进行计算:
int result = add.operate(1, 2); // result = 3
再例如,创建一个比较器Comparator的匿名实现:
Comparator<Integer> comparator = (x, y) -> {
if (x < y) return -1;
if (x > y) return 1;
return 0;
};
然后可以将其用于集合排序:
List<Integer> list = Arrays.asList(3, 1, 4, 2);
list.sort(comparator);
再例如,创建按钮点击事件的监听器实现:
java
button.setOnAction(event -> {
System.out.println("Button clicked!");
});
这里event -> {…}就是一个监听器实现的Lambda表达式,相当于创建了一个匿名监听器函数。