📅  最后修改于: 2023-12-03 14:42:12.660000             🧑  作者: Mango
Java 8引入了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表达式可以应用于任何接口类型,只要这个接口只有一个抽象方法,这个接口就是一个函数式接口。例如,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表达式还可以使用方法引用,引用已有的方法或构造方法,进一步简化代码。