为什么要使用lambda表达式?
- 避免匿名内部类定义过多
- 代码更简洁
- 去掉没有意义的代码,只留下核心逻辑
函数式接口
java中的接口,如果有且只有一个抽象方法,则该接口是一个函数式接口。
对于函数式接口,可以通过lambda表达式来创建该接口的对象。
public class Main {
public static void main(String[] args) {
Animal animal = () -> System.out.println("hello");
animal.run();
}
}
interface Animal {
void run();
}
语法:
(params) -> expressions[表达式]
(params) -> statement[语句]
(params) -> {statement}
注意:
- 可以去掉参数类型,要么同时保留,要么同时去掉。
- 有多个参数时,必须使用括号括起来。
- 只有一个参数时,可以不留括号,当然此时也不能留类型。
- 没有参数时,必须保留括号。
- 如果函数体只有一条语句或一条表达式,可以不加花括号,否则必须保留花括号。