为什么要用lambda表达式?
避免匿名内部类定义过多
可以让你的代码看起来很简洁
去掉一堆没有意义的代码只留下核心的逻辑
例:new Thread (()->System.out.println("多线程学习...")).start();
理解Functional Interface(函数式接口)是学习Java8 lambda表达式的关键所在
函数式接口的定义:
任意接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。
public inferface Runnable{
public abstract void run();
}
对于函数式接口我们可以通过lambda表达式赖创建该接口的对象
例:
①
②
小结:
lambda表达式子只有一行代码的情况下才能简化成为一行,如果有多行,那么就用代码块包裹
前提时接口为函数式接口
多个参数也可以去掉参数类型(int等),要去掉就都去掉(例:不能是(a,int b)) ,必须加上括号
Lambda表达式的代码分析:① () 里面没有内容,可以看成是方法形式参数为空
② -> 用箭头指向后面要做的事情
③ { } 包含一段代码,我们称之为代码块,可以看成是方法体中的内容