一、介绍
- Lambda表达式是JDK8开始后的一种新语法形式
- 作用:简化匿名内部类的代码写法
- 注意:Lambda表达式只能简化函数式接口的匿名内部类的写法形式
- 函数式接口:首先必须是接口、其次接口中有且仅有一个抽象方法的形式
二、格式
(匿名内部类被重写方法的形参列表)->{
被重写方法的方法体代码
}
三、实例
一、匿名内部类
package com.europeansheik;
public class Test {
public static void main(String[] args) {
goSwimming(new Swimming(){
@Override
public void swim(){
System.out.println("游泳真开心~~~");
}
});
}
public static void goSwimming(Swimming swimming){
swimming.swim();
}
}
interface Swimming{
void swim();
}
二、匿名表达式
package com.europeansheik;
public class Test {
public static void main(String[] args) {
goSwimming( () -> {
System.out.println("游泳真开心~~~");
});
}
public static void goSwimming(Swimming swimming){
swimming.swim();
}
}
interface Swimming{
void swim();
}
四、Lambda表达式的省略写法(进一步在Lambda表达式的基础上继续简化)
- 参数类型可以省略不写。
- 如果只有一个参数,参数类型可以省略,同时()也可以省略。
- 如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写,同时要省略分号!
- 如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写。此时,如果这行代码是return语句,必须省略return不写,同时也必须省略";"不写