Lambda表达式
1、Lambda表达式是jdk8新增的特性
2、作用:为了简化匿名内部类对象,Lambda允许把函数作为一个方法的参数,使用Lambda表达式可以写出更简洁、更灵活的代码,而其作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。
使用前提:只有一个必须被重写的抽象方法的接口,可以通过@Functionalnterface强制检测是否为函数式接口
@FunctionalInterface
interface Run{
void run(int i );
}
3、语法
()->{}
()表示要重写的抽象方法的参数列表
->Lambda操作符或箭头操作符
{}要重写的抽象方法的方法体
第一种写法:标准写法
Run r = (int i) -> {
System.out.println("run");
};
第二种写法:方法体只有一句时,前后的{}可以省略
Run r =(int i)-> System.out.println("run");
第三种写法:当方法具有参数时,参数的类型可以省略
Run r = (i,j)-> System.out.println("run");
第四种写法:当方法参数只有一个,前面的()可以省略
Run r = i-> System.out.println("跑");
第五种写法:当方法存放返回值,并且{}中的语句体只有return语句,前后的{}与return关键字可以一起省略
Run r = a -> a>0;
注意:当方法的形参为一个函数式接口,实参可以为lambda表达式