1. 什麼是λ表達式
λ表達式本質上是一個匿名方法,Lanbda表達式的主要作用就是代替匿名內部類的繁瑣語法, 它由三部分組成:
- (1) 形參列表。形參列表
允許省略
形參類型
。如果形參列表中只有一個參數
,甚至連形參列表的圓括號
也可以省略。 - (2) 箭頭(→)。必須通過英文中畫線和大於符號組成。
- (3)代碼塊。
如果代碼塊
只包含一條語句
,Lambda表達式允許省略
代碼塊的花括號
,那麼那條語句就不要用花括號表示語句結束。Lambda代碼塊只有一條return語句
,甚至可以省略``return
關鍵字。Lambda表達式需要返回值,而它的代碼塊中僅有一句省略了return的語句。Lambda表達式會自動返回這條語句的值。
2. lambda語法
lambda表達式的基本格式爲:( type x1,type x2 )->{ 表達式…};
而在整個java之中,對於lambda表達式一共定義了有三類語法:
- (params) -> 單行語句;
- (params) ->表達式;
- (params) ->{多行語句};
3.Lambda表達式使用條件
強調,如果要實現lambda表達式,那麼必須有一個前提,提供一個接口
,且接口裏面的抽象方法
只能夠存在一個
。所以爲了嚴格這樣的語法要求。可以使用函數式的接口定義@FunctionalInterface
.
@FunctionalInterface
interface MyMath {
public int add(int x,int y);
}
public class TestDemo {
public static void main(String[] args) {
MyMath myMath = (x,y) ->
{
int sum = x + y;
return sum;
};
System.out.println("計算結果:" + myMath.add(10,20));
}
}
參考
https://jingyan.baidu.com/article/eb9f7b6d569699869364e8b4.html
https://blog.csdn.net/bitcarmanlee/article/details/70195403
https://blog.csdn.net/ioriogami/article/details/12782141/
http://www.importnew.com/16436.html