Lambda 表达式的语法结构
Java 中的 Lambda 表达式的基本结构如下:
(参数列表) -> { 方法体 } 
✅ 语法形式举例(从简单到复杂)
| 形式 | 示例 | 说明 | 
|---|---|---|
| 无参数 | () -> System.out.println("Hi") | 没有参数,执行一个语句 | 
| 一个参数 | x -> x * x | 一个参数可以省略括号 | 
| 多个参数 | (a, b) -> a + b | 多个参数要加括号 | 
| 有方法体 | (a, b) -> { int c = a + b; return c; } | 多条语句时需要大括号和 return | 
🔍 分解示例
示例 1:list.forEach(s -> System.out.println(s));
解析:
-  
参数:
s -  
方法体:
System.out.println(s) -  
等价于实现
Consumer<T>接口中的accept(T t)方法。 
相当于写了:
list.forEach(new Consumer<String>() {public void accept(String s) {System.out.println(s);}
});
 
示例 2:
(x, y) -> x + y
解析:
-  
参数列表是两个:
x,y -  
方法体是一个表达式:
x + y -  
用于实现
BiFunction<Integer, Integer, Integer>接口中的apply(x, y)方法。 
示例 3:
() -> 42
解析:
-  
无参数
 -  
返回值为
42 -  
实现的是
Supplier<Integer>接口中的get()方法 
🧠 Lambda 与函数式接口的关系
Lambda 表达式必须用于函数式接口的上下文中(即接口中只允许一个抽象方法)。
@FunctionalInterface
interface MyFunction {int operate(int a, int b);
}
 
然后我们就可以这样写:
MyFunction add = (a, b) -> a + b;
System.out.println(add.operate(3, 5));  // 输出  
