Effective Java~42. Lambda 优于匿名类
生活随笔
收集整理的這篇文章主要介紹了
Effective Java~42. Lambda 优于匿名类
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
????????在 Java 8 中,添加了函數(shù)式接口, lambda 表達(dá)式和方法引用,以便更容易地創(chuàng)建函數(shù)對(duì)象。下面是一段代碼片段,按照字符串長(zhǎng)度順序?qū)α斜磉M(jìn)行排序,使用匿名類(lèi)創(chuàng)建排序的比較方法
(強(qiáng)制排序順序):
匿名類(lèi)的冗長(zhǎng),使得 Java 中的函數(shù)式編程成為一種吸引人的前景。
// Lambda expression as function object (replaces anonymous class) Collections.sort(words,(s1, s2) -> Integer.compare(s1.length(), s2.length()));使用比較器構(gòu)造方法代替 lambda,則代碼中的比較器可以變得更加簡(jiǎn)潔(條目 14,43):
Collections.sort(words, comparingInt(String::length));通過(guò)利用添加到 Java 8 中的 List 接口的 sort 方法,可以使片段變得更簡(jiǎn)短:
words.sort(comparingInt(String::length));????????與方法和類(lèi)不同,lambda 沒(méi)有名稱(chēng)和文檔; 如果計(jì)算不是自解釋的,或者超過(guò)幾行,則不要將其放入 lambda表達(dá)式中。 一行代碼對(duì)于 lambda 說(shuō)是理想的,三行代碼是合理的最大值。 如果違反這一規(guī)定,可能會(huì)嚴(yán)重?fù)p害程序的可讀性。
總結(jié)
以上是生活随笔為你收集整理的Effective Java~42. Lambda 优于匿名类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Redis系列二、redis的五种数据结
- 下一篇: Effective Java -- 思维