先看一个简单的lambda表达式:

Runnable r = () -> {System.out.println("Hello Lambda!");};

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

啥意思?

lambda表达式有三部分组成:参数列表,箭头(->),以及一个表达式或语句块

 

点开Runnable源码:

@FunctionalInterface
public interface Runnable {
    public abstract void run();
}
@FunctionalInterface 声明了是函数接口(只有一个抽象方法(重写的不算))
这时候,是不是有点明白了: 
() -> {System.out.println("Hello Lambda!");};这个语句,实际上,不就是实现了Runnable接口的run方法?
这也明白了为什么lambda表达式需要函数接口了(要是有多个方法,就没办法知道{语句}是属于哪个方法的了)

jdk预定义了一些函数接口在java.util.function包下(有什么用?往下看),打开jdk如下图:
 Lambda学习 随笔

 

 

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄