//普通写法 new Thread(new Runnable() { @Override publicvoidrun(){ System.out.println(Thread.currentThread().getName()); } }); //Lambda写法 new Thread(()->{ System.out.println(Thread.currentThread().getName()); }).start();
1 2 3 4 5 6 7 8 9 10 11
//普通写法 invokeCalc(5, 6, new Calc() { @Override publicintplus(int a, int b){ return a + b; } }); //Lambda形式 invokeCalc(5, 6, (int a, int b)->{ return a + b; });
Lambda的省略规则
可推导的都可以省略
规则:
()内参数的类型可以省略
如果()内有且仅有一个参数,则()可以省略
如果{}内有且仅有一个语句,则{}可省略,并且语句后面的;要一起省略,return也可省略。
func(()->{return a+b}); 省略为func(()->a+b)
1 2 3
// Lambda 省略形式 new Thread(()-> System.out.println(Thread.currentThread().getName())).start(); new Thread(()-> Thread.currentThread().getName()).start();