提到函数式编程我们首先需要了解的就是函数式接口,我们之前讲解的Lambda 表达式的主要服务对象就是函数式接口了。
所以这章我们就来认识下函数式接口:
- 函数式接口的定义
在java中函数式接口(Functional Interface)指的是只能有一个抽象方法但是可以有多个非抽象方法的接口。
函数式接口上一般会有@FunctionalInterface 修饰,但是不是必须的。
@FunctionalInterface 主要是为了更好的让编译器检查当前接口是否是函数式接口。
例如:线程的Runnable接口就是一个函数式接口。
如下图所示:
函数式接口可以很友好的使用Lambda进行实例化。
- JDK8提供的函数式接口
JDK8之前Java中就提供了一些函数式接口,例如我