Java中无参Lambda最简写法是() -> 表达式或() -> {语句},单表达式省略大括号和return,多语句须用大括号并显式return,需避免冗余空格、多余return及不必要代码块。

Java 中无参 Lambda 表达式最简洁的写法是:() -> 表达式 或 () -> { 语句 },关键在于省略参数类型、括号内留空、合理选择单表达式或代码块形式。
基础写法:空括号 + 单表达式
当 Lambda 体只有一条可求值的表达式(如返回值、方法调用)时,省略大括号和 return 关键字:
- Runnable r = () -> System.out.println("Hello");
- Supplier
s = () -> "default"; - BooleanSupplier b = () -> true;
这类写法最简,适用于函数式接口中抽象方法无参数、有返回值(或 void)的场景。
需要多语句?用大括号包裹
一旦涉及变量声明、条件判断、多行逻辑等,必须使用大括号,并显式写 return(如有返回值):
立即学习“Java免费学习笔记(深入)”;
- Supplier
calc = () -> { int a = 10; int b = 20; return a + b; }; - Runnable init = () -> { System.gc(); System.runFinalization(); };
注意:即使只有一条语句,若用了大括号,return 就不能省——() -> { "abc" } 是错的,必须写 () -> { return "abc"; }。
避免常见冗余写法
以下写法合法但不简洁,应主动简化:
- ❌ () -> { return "ok"; } → ✅ () -> "ok"
- ❌ ( ) -> System.out.println("x")(空格多余)→ ✅ () -> System.out.println("x")
- ❌ () -> { System.out.println("x"); return null; }(void 方法无需 return null)→ ✅ () -> System.out.println("x")
结合常用函数式接口快速上手
记住几个典型接口能帮你自然写出简洁无参 Lambda:
- Runnable(void 方法)→ () -> doSomething()
- Supplier<T>(返回 T)→ () -> new ArrayList<>()
- BooleanSupplier(返回 boolean)→ () -> Math.random() > 0.5
- Callable<V>(可能抛异常)→ () -> { Thread.sleep(100); return "done"; }
只要接口抽象方法无参数,就可用 () -> ... 形式,无需额外修饰。


















