…但還有更優(yōu)雅的解決方案。你可以使用 orElse方法來使得當(dāng)它為null時給出一個代替的值。
…或者使用 orElseGet方法來處理上述相同情況。這個例子和上面的看起來好像一樣,但本例是可以調(diào)用
supplier 接口的 實(shí)現(xiàn)
,,因此如果它是一個高開銷的方法,可以使用 lambda 表達(dá)式來獲得更好的性能。
使用Lambda表達(dá)式
Lambda 表達(dá)式 是 Java 8 的賣點(diǎn)之一.。即使你還沒有使用過Java 8, 到目前你也可能有一些基本的了解。但在Java編程中還是一種新的方式,它也不是明顯的”最佳實(shí)踐” 。 這里有一些我遵循的指南。
保持簡短
函數(shù)式程序員更愿意使用較長的lambda 表達(dá)式,但我們這些僅僅使用Java很多年的程序員來說更容易保持lambda 表達(dá)式的短小。你甚至更喜歡把它們限制在一行,更容易把較長的表達(dá)式 重構(gòu) 到一個方法中。
把它們變成一個方法引用, 方法引用看起來有一點(diǎn)陌生,但卻值得這樣做,因?yàn)樵谀承┣闆r有助于提高可讀性,后面我再談可讀性。
明確的
(作者應(yīng)該想要表達(dá)的是: 參數(shù)命名規(guī)范,要有意義;有更好的翻譯請修正)
lambda 表達(dá)式中類型信息已經(jīng)丟失了,因此你會發(fā)現(xiàn)包含類型信息的參數(shù)會更有用。