Lambda表达式
特点:
-
可推到的,可省略
-
凡是可以根据上下文推导出来的内容都可以省略书写
可以省略的内容:
-
(参数列表):括号中参数列表的数据类型可以省略不写
-
(参数列表):括号中的参数如果只有一个那么类型和括号都可以省略
-
{一些代码}:如果{}中代码只有一行,无论是否有返回值,那么都可以省略('{},return,;')
-
要省略"{},return,;"必须一起省略
-
实例
//使用Lambda表达式简化匿名内部类的书写写法
invokeCalc(120, 130, (int a, int b) -> {
return a + b;
});
invokeCalc(120, 130, (a, b) -> a+b);
//使用Lambda表达式简化匿名内部类
Arrays.sort(arr, (Person o1, Person o2) -> {
return o1.getAge() - o2.getAge();
});
Arrays.sort(arr, (o1, o2) -> o1.getAge() - o2.getAge());
使用Lambda表达式的几个注意事项
-
Lambda必须具有接口,要求接口中有且仅有一个抽象方法
-
方法的参数或局部变量类型必须为Lambda对于的接口类型,才能使用Lambda作为该接口的实例。