Lambda 表达式本身的类型:函数接口
函数接口:只有一个抽象方法的接口
在 Java 里,所有方法参数都有固定的类型:
假设将数字 3 作为参数传给一个方法,则参数 的类型是 int。那么,Lambda 表达式的类型又是什么呢?
使用只有一个方法的接口来表示某特定方法并反复使用,是很早就有的习惯。使用 Swing 编写过用户界面的人对这种方式都不陌生,如下的例子:
public interface ActionListener extends EventListener { public void actionPerformed(ActionEvent event);
}
ActionListener 只有一个抽象方法:actionPerformed,被用来表示行为:接受一个参数, 返回空。由于 actionPerformed 定义在一个接口里,因此 abstract 关键字不是必需 的。该接口也继承自一个不具有任何方法的父接口:EventListener。