Lambda表达式
Lambda表达式的标准格式:
由三部分组成
- —些参数
- —个箭头
- 一段代码格式:
(参数列表)-> {一些重写方法的代码};
解释说明格式:
(): 接口中抽象方法的参数列表,没有参数,就空着;有参数就写出参数,多个参数使用逗号分隔
->: 传递的意思,把参数传递给方法体
{}: 重写接口的抽象方法的方法体
Lambda表达式:是可推导,可以省略
凡是根据上下文推导出来的内容,都可以省略书写可以省略的内容:
- (参数列表):括号中参数列表的数据类型,可以省略不写
- (参数列表):括号中的参数如果只有一个,那么类型和()都可以省略
- {一些代码}:如果{中的代码只有一行,无论是否有返回值,都可以省略({ }, return,分号)
注意: 要省略{,return,分号必须一起省略
public class Demo04Lambda {
public static void main(String[] args) {
//使用匿名内部类
makeCook(new Cook() {
@Override
public void cook() {
System.out.println("金牌厨师做大餐");
}
});
//使用lambda表达式
makeCook(()->{
System.out.println("lambda金牌厨师做大餐");
});
//使用lambda表达式 省略形式
// 方法体只有一行时可以省略,必须同时省略{} ; return
makeCook(()->System.out.println("省略lambda金牌厨师做大餐"));
}
public static void makeCook(Cook cook){
cook.cook();
}
}
interface Cook {
public abstract void cook();
}