上一节中,通过行为参数化的方式来传递代码,代码量比较多,不简洁,也不是十分灵活,这一张,我们就先初识lambda表达式。
我们可以将lambda表达式理解为可传递的匿名函数的一种方式:他没有名称,但是有参数列表、函数主体,返回类型,可能还有可以抛出的异常列表。

代码:按照重量对苹果进行排序
Comparator<Apple> byWeight=(Apple a,Apple b)->a.getWeight().comparator(b.getWeight());
Lambda 表达式,也可称为闭包。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。 Lambda表达式可以替代以前广泛使用的内部匿名类,各种回调,比如事件响应器、传入Thread类的Runnable等。
lambda表达式语法
lambda 表达式的语法格式如下:
(parameters) -> expression
或
(parameters) ->{ statements; }
lambda表达式的特征
Lambda表达式的特征
1:类型声明(可选):可以不需要声明参数类型,编译器会识别参数值。
2:参数圆括号(可选):在单个参数时可以不使用括号,多个参数时必须使用。
3:大括号和return关键字(可选):如果只有一个表达式,则可以省略大括号和return关键字,编译器会自动的返回值;相对的,
在使用大括号的情况下,则必须指明返回值。
测试lambda表达式
下面哪些是有效的娥lambda表达式?
1: ()->{}
2: ()->"aaaa"
3: () ->{return "bbbb";}
4: (Integer i)->return "hhh"+i;
5: (String s)->{"hhhhh";}
答案:1,2,3都是有效的表达式
1:相当于:public void run(){};
2:相当于:public String dd(){return "aaaa";}
3:相当于:和2一样
4,5 都不是
4:返回的需要{}
5: 改成 (String s)->{return "hhhhh";}就对了
总结
熟记和理解,相信不难!有错,欢迎指出!854152531@qq.com
网友评论