@FunctionalInterface注解
FunctionalInterface的字面意思是函数式接口,而所谓的函数式接口,是指只有一个抽象方法的接口。函数式接口也叫做SAM接口,即Single Abstract Method interfaces。
所以,注解的@FunctionalInterface的作用就是:标识一个接口为函数式接口。
这里的“只能有一个抽象方法”,并不是说只能有一个方法,函数式接口还可以定义默认方法,静态方法,如下所示:
函数式接口,主要是为lambda表达式服务的, 比如上面的接口可以用如下lambda表达式的形式来表示一个实现类:
以下常见的接口都被标识为了函数式接口:
java.lang.Runnable
java.awt.event.ActionListener
java.util.Comparator
java.util.concurrent.Callable
Last updated