lambda表达式是JDK8的新特性之一,它可以简化代码,使代码看起来更加优雅简洁,给读者一种清爽的感觉。
lambda表达式使用的前提:
要实现的接口必须只能有一个需要被实现的方法(并不是规定接口中只能有一个方法);
lambda表达式是接口的一个实现,实质上就是一个匿名内部类对象,也是一接口的一个实现类对象。
但lambda表达式和匿名内部类还是有细微差别:
1.lambda表达式要实现的必须是接口;匿名内部类实现的可以是接口,也可以是抽象类,也可以是具体类;
2.使用限制不同。lambda表达式要求接口必须只能有一个需要被实现的方法。如果多于一个只能用匿名内部类了。
语法形式:
(形参列表)-> {代码块}
代码初体验:
// 如线程中的runnable接口(有@FunctionalInterface注解,说明只有一个
//需要被实现的方法,可以使用lambda)的实现对象使用lambda创建
Runnable r = ()->{System.out.println("===线程执行====");};
lambda表达式的省略规则:
1.小括号里的参数类型可以省略;
public interface Fly {
void fly(String animal);
}
Fly f = (a) -> {
System.out.println(a + "会飞");
};
f.fly("a");
2.小括号里的参数有且仅有一个c++lambda表达式,小括号也可以省略;
Fly f = a -> {
System.out.println(a + "会飞");
};
f.fly("a");
3.如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号c++lambda表达式,return关键字及省略号;
Fly f = a -> System.out.println(a + "会飞");
f.fly("a");
注意:要省略{},return,分号要同时省略;
限时特惠:本站每日持续更新海量设计资源,一年会员只需29.9元,全站资源免费下载
站长微信:ziyuanshu688
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。