Java Lambda表达式核心语法三要素:参数列表→无参必写()、单参可省括号、多参必带括号;箭头符号->为固定分隔符,不可省略或替换;方法体→单行表达式可省{}和return,多行必须用{}并显式return。

查 Java Lambda 表达式核心语法,关键不是翻文档找“定义”,而是抓住三要素:参数怎么写、箭头怎么用、方法体怎么简。下面按实际编码中最常遇到的场景,直接列出可立即对照使用的要点。
参数列表怎么写
参数写法取决于函数式接口抽象方法的签名,编译器会自动推断类型,所以重点看“个数”和“是否省括号”:
- 无参数 → 必须写 (),比如
() -> System.out.println("hello") - 单个参数 → 类型和括号都可省,
x -> x * 2和(int x) -> x * 2都合法,推荐前者 - 多个参数 → 括号不能省,类型可省,
(a, b) -> a + b是标准写法
箭头操作符 -> 的位置和作用
-> 是固定分隔符,不可省略或替换,它左边是参数,右边是实现逻辑。常见误写包括:
- 漏掉
->(编译报错) - 写成
=>或=>(语法错误) - 参数和箭头之间加空格没关系,但箭头两边至少各有一个空格更易读
方法体怎么简化
方法体是否带大括号、return、分号,全看“是否单行表达式”:
- 单行表达式(如
a + b、s.length() > 5)→ 可省 {}、return、; - 单行语句(如
System.out.println(s))→ 可省 {} 和 ;,但不写 return(因为 void) - 多行逻辑 → 必须用 {} 包裹,有返回值时必须写 return
什么时候必须用函数式接口
Lambda 不是万能的,它只能赋值给有且仅有一个抽象方法的接口(即函数式接口)。常用内置接口直接对应:
- 无参无返回 →
Runnable或自定义@FunctionalInterface接口 - 有参无返回 →
Consumer,如s -> System.out.println(s) - 有参有返回 →
Function,如s -> s.toUpperCase() - 只返回 boolean →
Predicate,如n -> n % 2 == 0
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











