java|lamda表达式是啥(是如何来的呢?如何快速理解lamda表达式)

Lamda是做什么的? lamda表达式是一种函数式接口,可以使代码更加简洁。
何为函数式接口,若一个接口只包含唯一一个抽象方法,那么它就是一个函数式接口。
lamda表达式是何如来简化代码的呢?往下看。
java|lamda表达式是啥(是如何来的呢?如何快速理解lamda表达式)
文章图片
java|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(); }

你是否以为这是最简单的写法了?
java|lamda表达式是啥(是如何来的呢?如何快速理解lamda表达式)
文章图片

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(); }

因为只有一行输出代码,所以我们可以将{}也省略掉!
java|lamda表达式是啥(是如何来的呢?如何快速理解lamda表达式)
文章图片

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表达式)】java|lamda表达式是啥(是如何来的呢?如何快速理解lamda表达式)
文章图片

    推荐阅读