程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> 一分鐘搞明白java8中的lambda

一分鐘搞明白java8中的lambda

編輯:JAVA編程入門知識
項目結構是這樣的

User是一個普通的pojo類

 

UserCompare是一個實現了Comprator的類

 

現在我們有一個需求:給一個user組成的list 按照user的年齡排序。實現不難,代碼如下:

 

這種方法由於sort方法的第二個參數是Comparator 所以你要寫一個實現類(我這裡是UserCompare類),並且override該接口的實現方法。

java8提供了lambda來簡化,有了lambda程序員從此不加班呀~    

剛才那個Comparator的實現類以及內部若干代碼就都省了,代之以lambda表達式。

另外,IntelliJ會提示你改成更好的寫法

 

實現類裡有多少代碼,你就省了多少行代碼。

高興了半天,到底是什麼原理呢?其實是java8新提供的語法糖。

 

我們打開java1.8 Comparator的定義,發現了類定義上面多了一個@FunctionalInterface

對,1.8多了一個概念就是FunctionalInterface,這個Comparator就是一個FunctionalInterface

有了這個注解,原來使用實現類的地方就可以代之以lambda表達式。

我水平有限,如果你看到這還沒明白,下圖可以幫助理解,圖1是實現類,圖2是把實現類沒用的地方都抹掉了。

對比一下吧,lambda表達式就是允許你把沒用的代碼都去掉!最少的代碼,一樣的功能!

 

 

 

 



							
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved