Lamda是做什么的? lamda表达式是一种函数式接口,可以使代码更加简洁。
何为函数式接口,若一个接口只包含唯一一个抽象方法,那么它就是一个函数式接口。
lamda表达式是何如来简化代码的呢?往下看。
文章图片
文章图片
举个栗子
1.首先是我们最为常见的方法
public class lam {public static void main(String[] args) {
Fac fac = new Ace();
fac.sta();
}
}
interface Fac{
void sta();
}
class Ace implements Fac{
public void sta(){
System.out.println("lamba表达式");
}
}
这种是最为常见的写法,那我们如何去简化他呢?
2.我们通过用静态内部类的方法使得代码更加简化了。
public class lam {static class Ace implements Fac{
@Override
public void sta() {
System.out.println("lamba表达式");
}
}
public static void main(String[] args) {
Fac fac = new Ace();
fac.sta();
}
}
interface Fac{
void sta();
}
3.我们还可以通过局部内部类的方法去简化他。
public class lam {public static void main(String[] args) {
Fac fac = new Ace();
class Ace1 implements Fac{
@Override
public void sta() {
System.out.println("局部内部类");
}
}
fac=new Ace1();
fac.sta();
}
}
interface Fac{
void sta();
}
4.通过匿名内部类我们来进一步简化
public class lam {
public static void main(String[] args) {
Fac fac ;
fac =new Fac(){
public void sta(){
System.out.println("匿名内部类");
}
};
fac.sta();
}
}
interface Fac{
void sta();
}
你是否以为这是最简单的写法了?
文章图片
5.我们还有lamda表达式,将方法名也省略掉。
public class lam {public static void main(String[] args) {
Fac fac ;
fac=()->{
System.out.println("lamda表达式");
};
}
}
interface Fac{
void sta();
}
6.那我们能不能继续简化了呢?答案是可以的!
public class lam {public static void main(String[] args) {
Fac fac ;
fac=()->System.out.println("lamda表达式");
}
}
interface Fac{
void sta();
}
因为只有一行输出代码,所以我们可以将{}也省略掉!
文章图片
6.plus lamda表达式带参数栗子
public class lam {public static void main(String[] args) {
Fac fac ;
fac=(a)->System.out.println("带参数的lamda,参数"+a);
fac.sta(5);
}
}
interface Fac{
void sta(int a);
}
综上所述,lamda表达式是一种很简约的写法,可以省略掉类的声明,只留下参数和实现代码。
头发已经在掉了,唉。
【java|lamda表达式是啥(是如何来的呢?如何快速理解lamda表达式)】
文章图片
推荐阅读
- lambda|Lamda表达式详解
- spark|莎士比亚统计最高的词频数 java,spark,rdd
- 单片机|SWM32系列教程3-时钟配置和GPIO
- java|Android App 沉浸式状态栏解决方案
- 进阶学习|进阶学习之jvm优化
- java面试题|Java面试题(2022全面复习java)
- SpringBoot|一天学完SpringBoot
- java|JavaSE基础复习day01
- #|黑洞优化算法(Matlab实现)