介绍
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代码中的匿名内部类,使代码更加简洁、易读。
注意事项
- Lambda表达式只能用于函数式接口,即只有一个抽象方法的接口,否则编译器会报错。
- Lambda表达式中访问的外部变量必须是final或者隐式的final(引用的本地变量不可改变),也就是说它们不能在Lambda表达式内部修改。
- Lambda表达式可以用方法引用来代替,使得代码更加简洁和易于理解。
- Lambda表达式的类型是根据上下文推断的,所以不需要显式声明类型。
- Lambda表达式的执行顺序是不确定的,具体执行顺序取决于JVM。
提示
- 当只有一个参数时,可以不写
()
- 当只有一行代码时,可以不写
{}
- 当只有一行代码并有返回值时,可以不写
{}
和return