java lambda表达式用→替代匿名内部类,核心是只保留“做什么”,要求接口为函数式接口;语法为参数→方法体,支持类型推断、括号省略及多行逻辑,返回值需显式return。

Java Lambda 表达式用 →(箭头)替代匿名内部类,核心是只保留“做什么”,省去“怎么包装”。前提是接口必须是函数式接口(只有一个抽象方法)。
语法结构:参数 → 方法体
左边是参数列表,右边是方法实现逻辑。类型可省略(编译器自动推断),单参数时括号也可省略:
- 无参:() → System.out.println("Hello")
- 单参:x → x * x(等价于 (x) → x * x)
- 多参:(a, b) → a + b
- 多行逻辑:(a, b) → { int sum = a + b; return sum > 10; }
替代 Runnable 匿名类
传统写法冗长:
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
new Thread(new Runnable() {
public void run() {
System.out.println("Running");
}
});
Lambda 写法简洁清晰:
new Thread(() -> System.out.println("Running")).start();
替代 Comparator 匿名类
排序时常见场景:
- 老写法:Arrays.sort(arr, new Comparator
() { public int compare(String a, String b) { return a.length() - b.length(); } }); - Lambda 写法:Arrays.sort(arr, (a, b) → a.length() - b.length());
- 更简写法(方法引用):Arrays.sort(arr, Comparator.comparing(String::length));
注意返回值与语句表达式区别
箭头右边如果是表达式(如 x → x + 1),自动返回结果;如果是语句块(用 {} 包裹),需显式写 return:
- 正确:x → x + 1
- 正确:x → { return x + 1; }
- 错误:x → { x + 1; }(缺少 return,且无返回值)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










