Java 箭头函数(Lambda表达式)

Java 箭头函数(Lambda表达式)

介绍

Java中的箭头函数通常是指Lambda表达式,Lambda表达式是Java SE 8中引入的新特性。它允许将函数作为参数传递给方法或使用函数式接口来实例化接口。Lambda表达式使用箭头符号(->)来分隔参数列表和方法体。

Lambda表达式可以看作是匿名函数,因为它没有显式的名称,但可以通过函数式接口来推导出其类型。在Java中,Lambda表达式的类型由函数式接口确定,函数式接口是只包含一个抽象方法的接口。Lambda表达式可以作为函数式接口的实现,将其传递给期望接口类型的方法。

语法

public class LambdaExample {
    public static void main(String[] args) {
        // 使用Lambda表达式实现Runnable接口
        Runnable runnable = () -> {
            System.out.println("Running thread using Lambda expression...");
        };
        Thread thread = new Thread(runnable);
        thread.start();
    }
}

在上面的示例中,使用Lambda表达式实现了Runnable接口的run()方法,实例化了一个Runnable对象,并将其传递给Thread类的构造函数,然后启动一个新线程来执行该对象的run()方法。

Lambda表达式的语法可以用来简化Java代码中的匿名内部类,使代码更加简洁、易读。

注意事项

  1. Lambda表达式只能用于函数式接口,即只有一个抽象方法的接口,否则编译器会报错。
  2. Lambda表达式中访问的外部变量必须是final或者隐式的final(引用的本地变量不可改变),也就是说它们不能在Lambda表达式内部修改。
  3. Lambda表达式可以用方法引用来代替,使得代码更加简洁和易于理解。
  4. Lambda表达式的类型是根据上下文推断的,所以不需要显式声明类型。
  5. Lambda表达式的执行顺序是不确定的,具体执行顺序取决于JVM。

提示

  1. 当只有一个参数时,可以不写()
  2. 当只有一行代码时,可以不写{}
  3. 当只有一行代码并有返回值时,可以不写{}return