您的位置 首页 java

Java开发「函数式编程」——函数式接口

提到 函数式编程 我们首先需要了解的就是函数式接口,我们之前讲解的 Lambda 表达式 的主要服务对象就是函数式接口了。

所以这章我们就来认识下函数式接口:

1. 函数式接口的定义

在java中函数式接口(Functional Interface)指的是只能有一个抽象方法但是可以有多个非抽象方法的接口。

函数式接口上一般会有 @FunctionalInterface 修饰,但是不是必须的。

@FunctionalInterface 主要是为了更好地让编译器检查当前接口是否是函数式接口。

例如:线程的Runnable接口就是一个函数式接口。

如下图所示:

Java开发「函数式编程」——函数式接口

函数式接口可以很友好地使用 Lambda进行实例化。

Java开发「函数式编程」——函数式接口

2. JDK8提供的函数式接口

JDK8之前 java 中就提供了一些函数式接口,例如我们上面看到的Runnable接口,除次之外还有:

  • 线程实现—Callable接口
  • 比较器 —Comparator
  • 动态代理—InvocationHandler
  • 文件过滤— File Filter

JDK8新增了很多的函数式接口,都放到了java.util.function包下,其中最常用的接口为:

  • Function

Java开发「函数式编程」——函数式接口

该接口表示接收一个类型T,返回一个结果类型R。

Java开发「函数式编程」——函数式接口

  • Consumer

Java开发「函数式编程」——函数式接口

该接口表示消费一个类型T进行处理,并且无结果返回。

使用如下:

Java开发「函数式编程」——函数式接口

  • Supplier

Java开发「函数式编程」——函数式接口

该接口表示不传入类型,只对外供给一个T类型的实例对象。

使用如下:

Java开发「函数式编程」——函数式接口

  • Predicat

Java开发「函数式编程」——函数式接口

该接口表示对一个类型T进行判断,最终返回一个boolean结果。

使用如下:

文章来源:智云一二三科技

文章标题:Java开发「函数式编程」——函数式接口

文章地址:https://www.zhihuclub.com/189807.shtml

关于作者: 智云科技

热门文章

网站地图