lambda 是java 把针对函数式方法提供的语法糖,而方法引用则是在lambda的基础上进一步简化了函数式方法的引用。
使用方法引用得到的代码更加简洁,在方法命名恰当的前提下,可读性也非常强。
方法引用一般有两种方式,一种是直接引用类中的方法:
如StringUtils::isNotEmpty
另一种则可能是从lambda 重构出来的方法。
如一个lambda 中的代码行数过多时,可以将其抽取出一个方法,然后使用this::function 的方法应用。当然也可以把方法抽取到另一个类中。
要注意的是在给被抽取的方法命名时,要简洁表意,从而使代码可读性更强。