Lambda表达式可以用来简化匿名内部类的书写
Lambda表达式只能用来简化函数式接口的匿名内部类的写法
函数式接口:有且仅有一个抽象方法的接口叫做函数式接口,接口上方可以注释@Functionalinterface注明
格式:
(形参)->{方法体}
先来举个例子给大家看看
//Arrays中的sort方法,第二个参数是一个接口,传递的是接口的实现类对象
Arrays.sort(arr,new comparator<Integer>()
{
@Override
public int compare(Integer o1,Integer o2){
return o1-o2;
}
);//实现类只使用一次,采用匿名内部类的方式书写
Arrays.sort(
(Integer o1,Integer o2)->{return o1-o2;}
);//使用Lambda表达式
Lambda表达式省略规则
1.参数类型可以省略不写
2.如果只有一个参数,参数类型可以省略,同时()也可以省略
3.如果Lambda表达式的方法体只有一行,大括号,分号,return可以省略不写,需要同时省略