注意:
Lambda只能简化接口中只有一个抽象方法的匿名内部类
Lambda表达式的省略写法(进一步在Lambda表达式的基础上继续简化)
1、参数类型可以省略不写。
2、如果只有一个参数,参数类型可以省略,同时()也可以省略。
3、如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写,同时要省略分号!
4、如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写。此时,如果这行代码是return语句,必须省略return不写,同时也必须省略";"不写
//lambda只能简化接口中只有一个抽象方法的匿名内部类
public class Lambda {
public static void main(String[] args) {
// Eat e=new Eat() {
// //原始形态
// @Override
// public void eat() {
// System.out.println("很好吃");
// }
// };
// go(e);
//简化1
Eat e=() ->{
System.out.println("很好吃!");
};
go(e);
System.out.println("--------------------");
// go(new Eat() {
// @Override
// public void eat() {
// System.out.println("确实很好吃!");
// }
// });
//简化2
go(()->{
System.out.println("真的很好吃!");
});
}
public static void go(Eat e){
e.eat();
}
}
interface Eat{
void eat();
}