Lamda初探
第一次看到lamda表达式,一头雾水,今天简单的分析下:
首先,lamda表达式一定符合函数式编程,即一个接口只有一个方法
1 //定义满足函数式编程的接口 2 //有返回值的eat 3 public interface Eat{ 4 String eat(String food,String name); 5 } 6 //无返回值的drink 7 public interface Drink{ 8 void drink(String food); 9 } 10 11 public static void main(String[] args) { 12 //1.原来实现接口需要这样写 13 /*class Ieat implements Eat{ 14 @Override 15 public String eat(String food) { 16 System.out.println("吃"+food+"ing..."); 17 return "吃后付款"; 18 } 19 }*/ 20 //2.现在,这样既可,下面注释这些全部不要,入参类型也可省略 21 /* class Ieat implements Eat{ 22 @Override 23 public String eat*/ 24 Eat eat=(food,name)->{ 25 System.out.println(name+"吃"+food+"ing..."); 26 return "吃后付款"; 27 }; 28 String res = eat.eat("油条","张三"); 29 System.out.println(res); 30 //3.无返回值的Drink登场,与上面的做对比,如果->后面只有一个“;”既可省略"{}" 31 Drink drink=(food)->System.out.println("喝"+food+"ing..."); 32 drink.drink("工业酒精"); 33 }