1.什么情况能用Lambda表达式:
如果是接口的匿名内部类,而且里面有且只有一个抽象方法需要实现
快捷键;alt+回车,选择就可以自动变成Lambda
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("hello");
}
}).start();
改为
new Thread(()->{System.out.println("hello");}).start();
或
new Thread(()->System.out.println("hello")).start();
int i=calculateNum(new IntBinaryOperator() {
@Override
public int applyAsInt(int left, int right) {
return left+right;
}
});
改为
int i2=calculateNum((int left,int right)->left+right);
2.只需要关注方法的参数和方法体
3.Lambda本质是作为接口的实例
4.省略
- 方法体只有一句代码时 大括号 return 分号可以省略
- 方法只有一个参数时小括号可以省略