lambda 是java 把針對函數式方法提供的語法糖,而方法引用則是在lambda的基礎上進一步簡化了函數式方法的引用。
使用方法引用得到的代碼更加簡潔,在方法命名恰當的前提下,可讀性也非常強。
方法引用一般有兩種方式,一種是直接引用類中的方法:
如StringUtils::isNotEmpty
另一種則可能是從lambda 重構出來的方法。
如一個lambda 中的代碼行數過多時,可以將其抽取出一個方法,然后使用this::function 的方法應用。當然也可以把方法抽取到另一個類中。
要注意的是在給被抽取的方法命名時,要簡潔表意,從而使代碼可讀性更強。