Java开发『函数式编程』——函数式接口
2023-09-14 09:16:36 时间
提到函数式编程我们首先需要了解的就是函数式接口,我们之前讲解的Lambda 表达式的主要服务对象就是函数式接口了。
所以这章我们就来认识下函数式接口:
- 函数式接口的定义
在java中函数式接口(Functional Interface)指的是只能有一个抽象方法但是可以有多个非抽象方法的接口。
函数式接口上一般会有@FunctionalInterface 修饰,但是不是必须的。
@FunctionalInterface 主要是为了更好的让编译器检查当前接口是否是函数式接口。
例如:线程的Runnable接口就是一个函数式接口。
如下图所示:
函数式接口可以很友好的使用Lambda进行实例化。
- JDK8提供的函数式接口
JDK8之前Java中就提供了一些函数式接口,例如我们上面看到的Runnable接口,初次之外还有:
线程实现—Callable接口
比较器—Comparator
动态代理—InvocationHandler
文件过滤—FileFilter
…
JDK8新增了很多的函数式接口,都放到了java.util.function包下,其中最常用的接口为:
Function
该接口表示接收一个类型T,返回一个结果类型R。
Consumer
该接口表示消费一个类型T进行处理,并且无结果返回。
使用如下:
Supplier
该接口表示不传入类型,只对外供给一个T类型的实例对象。
使用如下:
Predicat
该接口表示对一个类型T进行判断,最终返回一个boolean结果。
使用如下:
相关文章
- Java类集--Iterator接口、ListIterator接口、foreach及Enumeration接口
- Java泛型--泛型实例--标识接口的定义
- Elasticsearch java API (23)查询 DSL Geo查询
- Java实现 LeetCode 764 最大加号标志(暴力递推)
- Java实现 蓝桥杯 算法训练 字符串长度(IO无敌)
- java实现第七届蓝桥杯反幻方
- java实现第九届蓝桥杯三角形面积
- Java实现 蓝桥杯VIP 算法提高 字符串比较
- Java实现 蓝桥杯VIP 算法训练 整数平均值
- (Java实现)洛谷 P1164 小A点菜
- Java通过mysql-connector-java-8.0.11连接MySQL Server 8.0遇到的几个问题
- java 11 Java Flight Recorder
- [Linux] Install java and add JAVA_HOME, PATH
- JAVA抓取网页的图片
- Java 反射机制之 Class
- java面试题--实现一个百亿的计算器
- 五分钟为HTTP接口提供Java/Scala SDK
- PHP-Java-Bridge的使用(平安银行支付功能专版)
- 使用Java JdbcTemplate对mySQL进行CRUD增删改查操作
- 使用Java标准的java.util.EventListener实现观察者-发布者设计模式
- Atitit java播放 wav MIXER 混响器编程 目录 1.1. MIXER 混响器编程1 1.2. 得到系统中一共有多少个混音器设备:1 1.3. 接口摘要1 1.4. 调节音量
- atitit.Atitit. Gui控件and面板-----服务端控件 java struts的实现最佳实践
- Java学习之路 之 容易混淆篇
- Java中的Get和Post请求,使用万网接口判断域名是否已被注册
- Simple Logging Facade for Java (SLF4J)作用(java日志框架)
- 带你掌握java反序列化漏洞及其检测
- Java 15 的新特性: TextBlocks
- 解决idea出现的java.lang.OutOfMemoryError: Java heap space的问题
- JAVA运行java程序
- java编程接口(1) ------ Swing基金会
- Java程序猿从笨鸟到菜鸟之(九十二)深入java虚拟机(一)——java虚拟机底层结构具体解释
- cocos2d 中使用jni C++ 调用 Java 方法
- Java开发技术之成为高级java工程师必须学习的三个技术
- 【java】Java 接口(Interface)
- 【java】Java并发编程--Java实现多线程的4种方式