Lambda表达式在java中由三部分组成:java
interface Eatable{ void taste(); } interface Flyable{ void fly(String weathrer); } interface Addable{ int add(int a,int b); } public class LambdaTest { public void eat(Eatable e) { e.taste(); System.out.println(e); } public void fly(Flyable f) { f.fly("好天气"); System.out.println(f); } public void add(Addable a) { System.out.println(a.add(5, 3)); } public static void main(String[] args) { LambdaTest test = new LambdaTest(); test.eat(()->System.out.println("苹果")); test.fly(weater->{ System.out.println("哈哈哈"); System.out.println("能够飞行"); }); // 省略形参类型 省略花括号 test.add((a,b)->a+b); } }
Runnbale r =()->{ for(int i =0;i<100;i++){ System.out.println(i); } }; // 注意分号
Object obj = (Runnable)()->{ System.out.println(...); };
@FunctionalInterface interface Converter{ Integer convert(String from); } // 类方法 Converter con = from->Integer.valueOf(from); Converter con1 = Integer::valueOf; // 对象方法 Converter con2 = from->"hhhh".indexOf(from); Converter con3 = "hhhh"::indexOf; // 构造器相似 // ::new