Skip to content

lambda表达式

Lambda 表达式是 Lambda表达式 的核心语法之一,本质是:用更简洁的方式表示一个“函数”。它主要用在 函数式接口 上。

基本语法

  • 传统写法:匿名内部类
java
Runnable r = new Runnable() {
    @Override
    public void run() {
        System.out.println("执行任务");
    }
};
  • Lambda 写法:
java
Runnable r = () -> {
    System.out.println("执行任务");
};

使用条件

Lambda 只能用在 函数式接口 上,也就是 只定义了一个抽象方法的接口

java
@FunctionalInterface
interface MyFunc {
    int add(int a, int b);
}
java
MyFunc f = (a, b) -> a + b;

常见简化规则

与JS的箭头函数简化规则相同

  • 参数类型可以省略(类型推断)
java
(int a, int b) -> a + b
java
(a, b) -> a + b
  • 只有一个参数,可以省略括号
java
x -> x * 2
  • 只有一行代码,可以省略 {}return
java
(a, b) -> {
    return a + b;
}
java
(a, b) -> a + b