📜  Java 8-Lambda表达式(1)

📅  最后修改于: 2023-12-03 14:42:12.660000             🧑  作者: Mango

Java 8-Lambda表达式

介绍

Java 8引入了Lambda表达式,它是一种新的语法结构,用于简化函数式编程中的代码编写。Lambda表达式可以看作是将一个函数赋给一个变量,并将这个变量传递到函数中去。

Lambda表达式的语法

Lambda表达式语法如下:

(argument) -> { body }

其中,argument是参数,可以是零个或多个,用逗号隔开。如果没有参数,可以空着或使用一个空括号。

() -> { System.out.println("Hello world"); }

body是表达式或代码语句块。如果是表达式,则可以自动推断类型并省略return语句。

(x, y) -> x + y
() -> 42

如果是代码语句块,需要使用大括号,需要显式return语句。

(x, y) -> {
    int sum = x + y;
    return sum;
}
Lambda表达式的应用

Lambda表达式可以应用于任何接口类型,只要这个接口只有一个抽象方法,这个接口就是一个函数式接口。例如,Runnable接口,它只有一个run方法。

Runnable r = () -> { System.out.println("Hello world"); };

又例如,Comparator接口,它只有一个compare方法,通常用于比较两个对象的大小。

Comparator<Integer> c = (a, b) -> a - b;

Lambda表达式还可以使用方法引用,可以引用一个已有的方法或构造方法。例如,引用String的构造方法。

Function<String, Integer> f = Integer::parseInt;

还可以引用System的out对象的println方法。

Consumer<String> c = System.out::println;
总结

Lambda表达式是Java 8引入的新特性,用于简化函数式编程中的代码编写,语法简洁,易于使用。Lambda表达式可以用于任何接口类型,只要这个接口只有一个抽象方法,这个接口就是一个函数式接口。Lambda表达式还可以使用方法引用,引用已有的方法或构造方法,进一步简化代码。