1、使用lambda的前提:
①使用lambda必须具有接口,且要求接口中有且只有一个抽象方法。如果有多个抽象方法,那么必须要有多个实现,lambda的形式并不支持。
②必须具有上下文推断,即方法的参数和局部变量类型要为lambda对应的接口类型。
2、标准格式:
(参数类型 参数名称) -> { 代码语句 }
①无参传递,无参返回
public interface Cook {
void makeFood();
}
public static void invoke(Cook cook) {
cook.makeFood();
}
invoke(() -> {
System.out.println("1111");
});
②有参传递,无参返回
public interface Cook2 {
void makeFood(String msg);
}
public static void invoke2(Cook2 cook) {
cook.makeFood("水军2");
}
invoke2((String msg) -> { //这里的参数就是要被执行的方法的参数
System.out.println(msg);//无参返回
});
③有参传递,有参返回
public interface Cook3 {
String makeFood(String msg);
}
public static void invoke3(Cook3 cook) {
String msg = cook.makeFood("水军3");
System.out.println(msg);//有参返回
}
invoke3(msg->{
return msg+"处理";
});
或
invoke3(msg-> msg+"处理");