Lambda的语法非常简洁,完全没有面向对象复杂的束缚。但是使用时有基辛格问题需要特别注意:
使用Lambda必须具有接口,且要求接口中有且仅有有个抽象方法。无论是JDK内置的Runnable、Comparator接口还是自定义的接口,只有当接口中的抽象方法存在且唯一时,才可以使用Lambda。使用Lambda必须具有上下文推断。也就是方法的参数或局部变量类型必须为Lambda对应的接口类型,才能使用Lambda作为该接口的实例。 2.使用格式
():接口中抽象方法的参数列表,没有参数,就空着,有参数就写出参数,多个参数使用逗号分隔开
->:传递的意思,把参数传递给方法体{}
{}:重写接口中的抽象方法的方法体
注意:lambda表达式:是可推导,可以省略,凡是根据上下文推导出来的内容,都可以省略书写。
可以省略的内容:
- (参数列表):括号中参数列表的数据类型,可以省略不写(参数列表):括号中的参数如果只有一个,那么类型和()都可以省略{一些代码}:如果{}中的代码只有一行,无论是否有返回值,都可以省略({},return,分号);
但是要省略{},return,分号必须一起省略
//使用Lambda表达式,实现多线程
new Thread(()->{ //重写Rrun方法
System.out.println(Thread.currentThread().getName()+"新线程创建了");
}).start();
//省略{},return,分号
new Thread(()->System.out.println(Thread.currentThread().getName()+"新线程创建了") ).start();



