lambda的java_一分钟搞明白java8中的lambda
項目結構是這樣的
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表達式就是允許你把沒用的代碼都去掉!最少的代碼,一樣的功能!
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的lambda的java_一分钟搞明白java8中的lambda的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql php ajax_PHP 和
- 下一篇: 生物学专业_江南大学微生物学(发酵)20