答應我!下次開發就用Lambda 表達式

答應我!下次開發就用Lambda 表達式

Lambda 是一個匿名函數,我們可以把 Lambda 表達式理解為是一段可以傳遞的代碼將代碼像數據一樣進行傳遞)。可以寫出更簡潔、更靈活的代碼。作為一種更緊湊的代碼風格,使Java的語言表達能力得到了提升。

一、從匿名類到 Lambda 的轉換舉例1

二、Lambda 表達式語法

Lambda 表達式在Java 8 語言中引入了一個新的語法元素和操作符。這個操作符為 “->” , 該操作符被稱為 Lambda 操作符或箭頭操作符。它將 Lambda 分為兩個部分:

左側:指定了 Lambda 表達式需要的參數列表

右側:指定了 Lambda 體,即 Lambda 表達式要執行的功能。

三、語法格式

語法格式一:無參,無返回值

//總體來說就是 落地小括號,寫死右箭頭,再把方法挪過來。

Runnable r2 = () -> System.out.println("Hello World");

語法格式二:Lambda 需要一個參數,但是沒有返回值。

Student<string> stu = (String str) ->{/<string>

System.out.println(str);

};

語法格式三:數據類型可以省略,因為可由編譯器推斷得出,稱為“類型推斷”

Student<string> stu = (str) ->{/<string>

System.out.println(str);

};

語法格式四:Lambda 若只需要一個參數時,參數的小括號可以省略

Student<string> stu = str ->{/<string>

System.out.println(str);

};

語法格式五:Lambda 需要兩個或以上的參數,多條執行語句,並且有返回值

Comparator<integer> com = (x,y) -> {/<integer>

System.out.println("Hello");

return Integer.compare(x,y);

};

語法格式六:當 Lambda 體只有一條語句時,return 與大括號可以省略

Comparator<integer> com2 = (x,y) -> Integer.compare(x,y);/<integer>


分享到:


相關文章: