通常在编成语言中函数指的是方法,尤其是静态方法。java8的函数增加了函数——值的一种新形式,他有助于使用流,使java8可以进行多核处理器的并行编程。程序直接操作的就是值,它是编程世界的一等公民,而一些其他的java概念(类、方法)等是二等公民,通常java中的值有基本数据类型和对象,现在新增了函数把方法也可以作为值传递,方法也编成了一等公民,可以被直接操作,可以扩充程序员的工具库,从而让编程变得容易。

我们介绍的第一个java8的新功能是方法引用。如果我们需要筛选一个目录中隐藏的文件,可以按照如下实例实现:

File [] hiddenFiles = new File(“.”).listFiles(new FileFilter() {
public boolean accecpt(File file) {
return file.isHidden();
}
});

我们必须把file.isHidden()方法包在FileFilter()方法中,太啰嗦了!
在java8中,你可以这么实现

File file = new File(“.”).listFiles(File::isHidden);

这里你就把File.isHidden()方法作为一个参数直接传给了listFiles().我们同样也可以使用Lambda表达式来实现这种把函数作为值的思想。