2.1 概述
Lambda 是JDK8中一个语法糖,他可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现,让我们不用关注是什么对象,而是更关注我们对数据就行了什么操作。
2.2 核心原则
可推导课可省略
2.3 基本格式
(参数列表)->{代码}
例一
我们在创建线程并启动时,可以使用匿名内部类的写法:
public class Demo01 {
public static void main(String[] args) {
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("我亦无他,惟手熟尔。");
}
}).start();
}
}
可以使用Lambda的格式对其进行修改,修改后如下:
public class Demo01 {
public static void main(String[] args) {
new Thread(()->{
System.out.println("我亦无他,惟手熟尔。");
}).start();
}
}
例二
现有方法定义如下,其中intBinaryOperator 是一个接口,先使用匿名内部类的写法调用该方法。
public class Demo02 {
public static void main(String[] args) {
calculateNum(new IntBinaryOperator() {
@Override
public int applyAsInt(int left, int right) {
return left+right;
}
});
}
public static int calculateNum(IntBinaryOperator operator){
int a=10;
int b=20;
return operator.applyAsInt(a,b);
}
}
Lambda写法:
public class Demo02 {
public static void main(String[] args) {
calculateNum((a, b) -> {return a + b;});
}
public static int calculateNum(IntBinaryOperator operator){
int a=10;
int b=20;
return operator.applyAsInt(a,b);
}
}