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