Lambda 表达式支持多行语句。我们可以通过以下两种方式在 Lambda 表达式中使用多行语句:
- 使用花括号 {} 包裹多行语句
例如:
Consumer<Integer> consumer = (x) -> {
System.out.println(x);
doSomething(x);
x++;
};
这里使用 {} 将三行语句包裹起来,所以 Lambda 表达式支持多行语句。
- 使用 return 语句
例如:
Function<Integer, Integer> function = (x) -> {
int result = x * 2;
return result;
};
这里使用 return 语句将多行语句中的结果返回,所以也支持多行语句。
需要注意的是:
- 如果 Lambda 表达式有且只有一条语句,那么可以选择省略花括号 {}。
- 如果 Lambda 表达式只有一条 return 语句,那么可以选择省略花括号 {}。
- 如果两个条件同时满足,那么可以同时省略花括号 {} 和 return 关键字。
例如:
Consumer<Integer> c1 = (x) -> System.out.println(x);
Function<Integer, Integer> f1 = (x) -> x * 2;
等价于:
Consumer<Integer> c2 = (x) -> { System.out.println(x); };
Function<Integer, Integer> f2 = (x) -> { return x * 2; };