汇智动力

售前免费咨询热线: 4 0 0 - 1 8 6 - 0 9 0 5
汇智资讯Huizhi information

当前位置:首页 »Java开发『函数式编程』——函数式接口

Java开发『函数式编程』——函数式接口

日期:2021-09-02 15:48:24 访问量: 来源:

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

 

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

 

1. 函数式接口的定义

 

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

 

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

 

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

 

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

 

如下图所示:

Java开发『函数式编程』——函数式接口

 

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

Java开发『函数式编程』——函数式接口

 

2. JDK8提供的函数式接口

 

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

  • 线程实现—Callable接口

  • 比较器—Comparator

  • 动态代理—InvocationHandler

  • 文件过滤—FileFilter

  • ...

 

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

 

  • Function

Java开发『函数式编程』——函数式接口

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

Java开发『函数式编程』——函数式接口
 

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

 

使用如下:                

Java开发『函数式编程』——函数式接口
 
Java开发『函数式编程』——函数式接口

 

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

 

使用如下:         

Java开发『函数式编程』——函数式接口
 

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

 

使用如下:

Java开发『函数式编程』——函数式接口

相关阅读Reading

全国热线:400-186-0905

总部热线:028-6547-1147

周一至周日9:30-24:00

我要咨询
汇智动力微信

汇智动力微信公众号