2.1 概述
Lambda 是JDK8中一个语法糖,他可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现,让我们不用关注是什么对象,而是更关注我们对数据就行了什么操作。
2.2 核心原则
可推导课可省略
2.3 基本格式
(参数列表)->{代码}
例一
我们在创建线程并启动时,可以使用匿名内部类的写法:
public class Demo01 {public static void main(String[] args) {new Thread(new Runnable() {@Overridepublic 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() {@Overridepublic 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);}}
