Java 8 Supplier函数式接口介绍及代码样例

news/发布时间2024/5/12 14:25:17

介绍

供应商接口(Supplier Interface)是 Java 8 引入的 java.util.function 包的一部分,用于在 Java 中实现函数式编程。它表示一个函数,该函数不接收任何参数,但会产生一个类型为 T 的值。
T:表示结果的类型
分配给 Supplier 类型对象的 lambda 表达式用于定义其 get(),最终产生一个值。当我们不需要提供任何值并同时获得一个结果时,Supplier 就非常有用。Supplier 接口只包含一个函数:
image

使用方法

案例1:

下面的示例展示了如何使用 Lambda 表达式来使用供应商接口的 get() 方法。

public class SupplierDemo {public static void main(String[] args) {Supplier < LocalDateTime > supplier = () -> LocalDateTime.now();System.out.println(supplier.get());}
}
  • 输出:
2024-03-06T09:58:17.135

案例2:

在本例中,我们将创建一个产品列表,并使用供应商接口提供这些产品。
让我们创建一个简单的产品 POJO:

public class Product {private int id;private String name;private float price;public Product(int id, String name, float price) {super();this.id = id;this.name = name;this.price = price;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}@Overridepublic String toString() {return "Product [id=" + id + ", name=" + name + ", price=" + price + "]";}
}
public class SupplierDemo {public static void main(String[] args) {System.out.println(productSupplier().get());}private static Supplier<List< Product >> productSupplier() {Supplier < List < Product >> productSupplier = () -> {List < Product > productsList = new ArrayList< Product >();productsList.add(new Product(1, "哇哈哈纯净水", 2));productsList.add(new Product(2, "红卫羊油皂", 2f));productsList.add(new Product(3, "白象方便面", 3f));productsList.add(new Product(4, "南方黑芝麻糊", 3f));productsList.add(new Product(5, "华为手机", 6000f));return productsList;};return productSupplier;}
}
  • 输出:
[Product [id=1, name=哇哈哈纯净水, price=2.0], Product [id=2, name=红卫羊油皂, price=2.0], Product [id=3, name=白象方便面, price=3.0], Product [id=4, name=南方黑芝麻糊, price=3.0], Product [id=5, name=华为手机, price=6000.0]]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/27005086.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

MongoDB Server 用户名和密码登录

一、前言# 默认情况下,MongoDB实例启动运行时是没有启用用户访问权限控制的,也就是说,在实例本机服务器上都可以随意连接到实例进行各种操作,MongoDB不会对连接客户端进行用户验证,这是非常危险的 MongoDB Server默认不进行安全认证,即任何MongoDB Client都可以连接并拥有…

自我介绍+软工五问

作业要求这个作业属于哪个课程 软件工程2024这个作业要求在哪里 自我介绍+软工5问这个作业的目标 1. 注册一个博客园和Github账号,学习markdown文档的编写 2. 快速阅读教材并提出五个问题,让我们快速了解所学内容并对此进行思考。自我介绍 我叫徐天,来自黑龙江省。原本的专业…

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记02_大数据

读算法的陷阱:超级平台、算法垄断与场景欺骗笔记02_大数据1. 大数据分析 1.1. 随着“大数据军备竞赛”与定价算法的广泛应用,线上购物平台与实体商铺的界限也变得越来越模糊 1.2. 在沃尔玛疯狂扩张的时代,它给地区性商业带来的伤害不亚于一场地震 1.2…

MacTeX 使用指南

MacTeX 发行版包含了一整套的 TeX/LaTeX 工具和程序。MacTeX 基本上是 TeX Live 的一个 macOS 版本。 安装 brew install --cask mactex使用 安装好 MacTeX 后,你会获得下列 5 款 GUI 工具:TeXShop: TeX/LaTeX 编辑器 BibDesk: 参考文献管理工具 LaTeXiT: 一种小巧的公式编辑…

多目标车辆行人的跟踪和计数案

多目标车辆行人的跟踪和计数案 如何使用 YOLOv4 目标检测完成对道路上的车辆、行人的检测、跟踪和计数。先放张图看效果。 绿框代表检测出的目标,粉色点代表每个检测框的中心点,红色数字用于跟踪该目标。当目标在画面上消失时,红色索引自动消失,有新目标出现时,生成新的索…

软工作业1:自我介绍+软工五问

这个作业属于哪个课程 软件工程2024这个作业要求在哪里 自我介绍+软工5问这个作业的目标 1.向老师介绍自己2.熟悉博客和GitHub的使用3.熟悉合理排版的需求一、自我介绍 我是李慧娣,从小在广东惠州长大。由于三分钟热度,我的爱好很广泛,喜欢音乐、手工、电影、滑板、羽毛球、…