文章图片
接口是定义一组方法及其签名的契约 。 任何类都可以扩展这个接口并实现这个接口的方法 。 Java 编程语言从该语言的最早版本开始就提供了对接口的支持 。
函数式接口是 Java 的一个流行特性 , 在版本8中被添加到该语言中 。 它们允许开发人员将函数创建为一流的对象 , 这为创建可重用代码和简化开发过程开辟了新的可能性 。
本 Java 编程教程将介绍函数式接口、它们的工作原理、它们为何有用 , 以及开发人员如何在项目中使用它们的一些示例 。
Java中的函数接口是什么?
Java中的函数接口是仅由一个抽象方法(即未实现的方法)组成的接口 。 尽管此方法必须有返回类型 , 但它不能接受参数 。 该方法还必须是公共的 , 并且位于可访问的类或接口中 。
除了一个抽象方法之外 , 你还可以在Java的函数接口中创建以下方法:
默认方法
静态方法
从Object类继承的方法
Java中的@FunctionalInterface注释
在Java 8中 , 注释@FunctionalInterface将接口标记为功能接口 。 如果你的接口包含多个抽象方法 , 你可以用此注释标记接口以生成编译器错误 。 Java中的函数接口通常用于lambda表达式它可以有几个默认方法 。
应该注意的是 , 注释@FunctionalInterface是可选的 。 如果一个接口包含一个抽象方法 , 但没有@FunctionalInterface注释 , 它仍然是一个函数接口 , 可能是lambda表达式的目标类型 。 注释防止我们错误地将函数接口修改成非函数接口 , 因为编译器会标记错误 。
Java中的函数式接口有什么好处?
函数式接口最显着的好处是它们使创建多个类无需复制和粘贴代码即可使用的抽象成为可能 。 当开发人员需要创建具有各种方法和行为的复杂抽象时 , 这尤其有用 。
在 Java 中 , 使用函数式接口 , 程序员可以将函数作为参数而不是引用对象传递 , 这减少了你必须编写的样板代码量 。
在函数式编程中 , 一段代码可能被视为数据 。 这就是 lambda 表达式有帮助的地方 。 你可以使用 lambda 表达式将代码传递给另一个函数或对象 。 需要注意的是 , lambda 表达式使用函数式接口作为数据类型 。 因为函数式接口中只有一个抽象方法 , 所以该方法的实现变成了可以作为参数传递给另一个方法的代码 。
Java 中的内置函数式接口
除了 Comparator 和 Runnable 接口之外 , Java 8 中还有许多其他内置的函数式接口 , 例如 Callable、Predicate、Function 和 Consumer 。 这些接口可以在 java.util.function 包中找到 。
下面简要讨论一下 Java 中最常用的内置接口:
Comparator:Comparator是用于根据特定标准比较两个对象的接口 java.util.Comparator 类用于实现这个接口 。
Runnable:它是一个抽象类 , 实现了Runnable接口 , 并提供了一个运行线程的抽象 。
Callable:它表示一个返回单个结果值 T 的任务 , 可以通过调用它的 call() 方法来访问它 。
Future:Future 表示一个异步操作 , 其结果可能尚不可用 , 但最终将在未来某个时间点(当所有待处理的活动已成功完成或未成功完成时)可用 。
Supplier:Supplier只是一个返回值而不带输入参数的函数;这些也称为纯函数 。
Predicate:Predicate 功能接口表示对于由其布尔参数类型 T 指定的某些条件返回 true 或 false 的谓词 。
Consumer:Consumer 函数接口表示接受 T 类型参数并且不返回结果的函数 。
关于 Java 中函数式接口的最终思考
Java 8 中引入的 lambda 表达式提供了新语法改进 , 并有助于消除应用程序中的样板代码 。函数式接口通过减少匿名内部类的冗长性 , 使编写函数式代码变得更加容易 。
- 本文转自:中国日报网中国日报9月2日电(记者赵磊)在广东江门|航天技术再跨界 南京晨光助力“大国重器”建设
- 本文转自:长江日报长江日报大武汉客户端9月2日讯(记者李佳)在上海召开的2022世界人工...|武汉产三模态大模型、医疗小“精灵”共摘世界人工智能大会
- soul|爆槽娱子酱:百度网盘公关差在哪儿?原神必胜客又出圈
- iPhone手机|面世以来新高 iPhone在美国市占比首超50%
- 本文转自:人民网人民网北京9月2日电 (黄盛)在2022年中国国际服务贸易交易会(下称“...|联想晨星机器人亮相服贸会:展现虚拟与现实交互的沉浸体验
- 本文转自:新民网可信AI论坛于9月1日在西岸美术馆成功召开。|可信AI论坛完美收官 大咖云集共话可信AI共建共治
- 本文转自:人民网-上海频道人民网上海9月2日电 (记者葛俊俊)9月2日|为国际智慧城市发展提供中国样本,“智慧城市2035”出版工程在沪启动
- 本文转自:青岛日报青岛日报社/观海新闻9月2日讯 在新一代信息技术与传统制造业深度融合的...|中国首家!海尔智家再循环互联工厂在青岛投产
- 本文转自:海峡网中关村在线消息:今天上午|华为将要发布捅破天的技术 9月6日的发布会上将给大家揭秘
- 本文转自:鲁中晨报淄博9月2日讯 9月1日-3日|紫荆杯汽车创新创业大赛在淄举行 优秀项目落地淄博可获5000万元资助