lambda是jdk1.8中新增的内容,目的是为了简化匿名内部类。
格式:()->{}
():重写方法的参数列表
->:推到上下文
{}:重写方法的方法体
方法体为表达式,该表达式的值作为返回值返回。
A a1 =()-> {System.out.println("lambda表达式");};
a1.a();
前提:函数式接口(只有一个抽象方法的接口)
@FunctionInterface //判断是否为函数式接口
interfacde A{
void a();
}
interfacde B{
void b(int i);
}
使用:
- 如果方法体只有一句,那么{ }可省略
A a1 =()-> System.out.println("lambda表达式");
- 如果参数列表有参数,则数据类型可不写
B b1 =(i)-> System.out.println("lambda表达式");
,->会自动匹配返回值的类型。 - 如果参数列表只有一个参数,则( )可不写
B b1 = i -> System.out.println("lambda表达式");
- 如果方法有返回值,且只有返回值,则 return 和 { }可省略
A a1 =()-> 3;