Lambda是一个匿名函数,我们可以把Lambda表达式理解为一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表单能力得到了提升。
lambda表达式的本质:作为函数式接口的实例
没有参数,没有返回值
@Test
public void test1() {
Runnable runnable = () -> System.out.println("hello lambda");
runnable.run();
}
需要一个参数,没有返回值
@Test
public void test2() {
Consumer consumer = (String param) -> System.out.println("param = " + param);
consumer.accept("lambda");
}
省略数据类型,由编译器推断数据类型
@Test
public void test3() {
Consumer consumer = (param) -> System.out.println("param = " + param);
consumer.accept("类型推断");
}
如果只需要一个参数,则参数两边的小括号可以省略
@Test
public void test4() {
Consumer consumer = param -> System.out.println("param = " + param);
consumer.accept("省略括号");
}
lambda需要两个或多个参数,有多条执行语句,并且可以有返回值
@Test
public void test5() {
// 括号类的参数没有写类型,使用了类型推断
Comparator comparator = (o1, o2) -> {
System.out.println("o1 = " + o1);
System.out.println("o2 = " + o2);
return Integer.compare(o1, o2);
};
System.out.println(comparator.compare(1, 2));
}
如果lambda只有一行执行语句,则大括号可以省略
@Test
public void test2() {
Consumer consumer = (String param) -> System.out.println("param = " + param);
consumer.accept("lambda");
}



