首先理解定义(百度百科)
Lambda 表达式(lambda expression)
是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包(注意和数学传统意义上的不同)。
Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。当开发者在编写Lambda表达式时,也会随之被编译成一个函数式接口。下面这个例子就是使用Lambda语法来代替匿名的内部类,代码不仅简洁,而且还可读
首先可以先看两个例子(摘自百度百科),本篇主要介绍一下什么是lambda表达式以及为什么要用lambda表达式。后面会对Lambda的相关用法详细讲解。
没有使用lambda的代码
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent actionEvent){
System.out.println("Action detected");
}
});
使用Lambda:
button.addActionListener( actionEvent -> {
System.out.println("Action detected");
});
让我们来看一个更明显的例子
不采用Lambda的老方法
Runnable runnable1=new Runnable(){
@Override
public void run(){
System.out.println("Running without Lambda");
}
};
使用Lambda:
Runnable runnable2=()->System.out.println("Running from Lambda");
正如你所看到的,使用Lambda表达式不仅让代码变的简单、而且可读、最重要的是代码量也随之减少很多