lambda 是java 把針對(duì)函數(shù)式方法提供的語法糖松邪,而方法引用則是在lambda的基礎(chǔ)上進(jìn)一步簡(jiǎn)化了函數(shù)式方法的引用坞琴。
使用方法引用得到的代碼更加簡(jiǎn)潔,在方法命名恰當(dāng)?shù)那疤嵯露阂郑勺x性也非常強(qiáng)悯蝉。
方法引用一般有兩種方式,一種是直接引用類中的方法:
如StringUtils::isNotEmpty
另一種則可能是從lambda 重構(gòu)出來的方法运授。
如一個(gè)lambda 中的代碼行數(shù)過多時(shí)咏尝,可以將其抽取出一個(gè)方法,然后使用this::function 的方法應(yīng)用褂傀。當(dāng)然也可以把方法抽取到另一個(gè)類中忍啤。
要注意的是在給被抽取的方法命名時(shí),要簡(jiǎn)潔表意仙辟,從而使代碼可讀性更強(qiáng)同波。