生活随笔
收集整理的這篇文章主要介紹了
java8 lamda快速入门
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Lambda語法詳解
我們?cè)诖顺橄笠幌耹ambda表達(dá)式的一般語法:
| 1 | (Type1 param1, Type2 param2, ..., TypeN paramN) -> { |
從lambda表達(dá)式的一般語法可以看出來,還是挺符合上面給出的非精確版本的定義–“一段帶有輸入?yún)?shù)的可執(zhí)行語句塊”。
上面的lambda表達(dá)式語法可以認(rèn)為是最全的版本,寫起來還是稍稍有些繁瑣。別著急,下面陸續(xù)介紹一下lambda表達(dá)式的各種簡(jiǎn)化版:
1. 參數(shù)類型省略–絕大多數(shù)情況,編譯器都可以從上下文環(huán)境中推斷出lambda表達(dá)式的參數(shù)類型。這樣lambda表達(dá)式就變成了:
| 1 | (param1,param2, ..., paramN) -> { |
所以我們最開始的例子就變成了(省略了List的創(chuàng)建):
| 1 | List<String> lowercaseNames = names.stream().map((name) -> {return?name.toLowerCase();}).collect(Collectors.toList()); |
2. 當(dāng)lambda表達(dá)式的參數(shù)個(gè)數(shù)只有一個(gè),可以省略小括號(hào)。lambda表達(dá)式簡(jiǎn)寫為:
所以最開始的例子再次簡(jiǎn)化為:
| 1 | List<String> lowercaseNames = names.stream().map(name -> {return?name.toLowerCase();}).collect(Collectors.toList()); |
3. 當(dāng)lambda表達(dá)式只包含一條語句時(shí),可以省略大括號(hào)、return和語句結(jié)尾的分號(hào)。lambda表達(dá)式簡(jiǎn)化為:
所以最開始的例子再次簡(jiǎn)化為:
| 1 | List<String> lowercaseNames = names.stream().map(name -> name.toLowerCase()).collect(Collectors.toList()); |
4. 使用Method Reference(具體語法后面介紹)
| 1 | //注意,這段代碼在Idea 13.0.2中顯示有錯(cuò)誤,但是可以正常運(yùn)行 |
| 2 | List<String> lowercaseNames = names.stream().map(String::toLowerCase).collect(Collectors.toList()); |
方法引用有很多種,它們的語法如下:
- 靜態(tài)方法引用:ClassName::methodName
- 實(shí)例上的實(shí)例方法引用:instanceReference::methodName
- 超類上的實(shí)例方法引用:super::methodName
- 類型上的實(shí)例方法引用:ClassName::methodName
- 構(gòu)造方法引用:Class::new
- 數(shù)組構(gòu)造方法引用:TypeName[]::new
?
參考文獻(xiàn):
【1】http://ifeve.com/lambda/
?
轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/6180819.html
總結(jié)
以上是生活随笔為你收集整理的java8 lamda快速入门的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。