实例
// 1 完成匿名函数
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("run");
}
};
new Thread(runnable).start();
// 2 省略实例化对象
Runnable runnable1 = () -> {
System.out.println("name");
};
new Thread(runnable1).start();
// 3 lambda表达式
new Thread(() -> {System.out.println("123");}).start();
// 4 省略多余的字符
new Thread(() -> System.out.println("456")).start();
执行结果
lambda表达式可以理解为一种匿名函数的代替
JDK8提供了一个注解帮助我们编译时检测语法时候符合@Functioninterface
引入了箭头操作符
左侧参数,右侧方法体
注意:
1.参数类型自动判断
2.如果形参列表为空,只需保留();
3.如果形参只有1个,()可以省略
4.如果执行语句只有1个,且无返回值,{}可以省略,并同时省略return
5.lambda不会生成一个单独的内部文件
6.lambda访问局部变量,必须是final