链接消费者 Java 8

2023-12-03

您好,我遇到以下问题。假设我们有对象“Account”,该对象 Account 是不可变的,因此随着时间的推移,我们对其执行操作,实际上是将其转换为另一种状态。例如Account可以变成ClosedAccount或NewAccount等等。现在,在某些情况下,我的转换是反射性的,帐户已转换为帐户,但一些非常小的内容发生了更改,例如“modifiedDate”。因为我的帐户本质上是不可变的,所以即使反射操作仍在创建具有更新值的新帐户。如果我的对象不是不可变的,我会使用类似的东西:

List<String> accountsIds;
accountIds.parrallelStream.map(t->NewAccount)
          .map(t->Account)
          .peek(t->changetheDate())
          .map(t->closeAccount())
          .forEach(bla bla bla)

现在的问题是 peek() 只会更改可变对象的状态。但就我而言,帐户是不可变的,因此即使我创建一个新对象,该对象也不会进一步流式传输。

问题是是否有可能以这样的方式链接“消费者”,使它们像“映射”方法一样工作,将“消费者”的输出变成下一个“消费者”的输入。换句话说,我正在寻找适用于不可变对象的“查看”操作。

我问这个问题的原因是因为我的理解是“map”是一个转换操作,而我想执行更像是一个Action的东西。它作为转换操作起作用只是因为我正在使用不可变对象,但如果我使用可变对象,它就只是一个动作。


您可能正在尝试解决一个不存在的问题。我认为对对象进行任何更改都是完全正常的map()无论变化有多么小。

我的理解是,像这样的操作背后没有语义意义map() or peek(),您可以使用它们中的任何一个来完成任何适合的任务。

peek()通常用于调试:它允许您记录流中的每个项目,而无需使用终端操作并销毁流。map()当您需要对对象执行某些操作并将它们向前传递时使用。

另外,想一想:Consumer接口只有一个输入参数,并且不返回任何值。如果您的输入参数是不可变的,则无法在没有任何肮脏技巧的情况下从此方法返回任何值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

链接消费者 Java 8 的相关文章

随机推荐

  • 如何根据谷歌表格的第一列替换颜色

    所以我有一个电子表格 里面有一堆数据 第一列是状态 第二列是名称 我想做的是让行交替蓝色 红色 蓝色 红色 以使其易于阅读 但我不希望它像偶数 奇数一样交替每一行 我想要的是每个州都有不同的颜色 所以所有的行都是 AL 蓝色 然后是 CA
  • 将包含逗号/引号的平面文件导入 SAP BODS

    您好 我在 csv 文件中有一行如下所示 12346 abcded ssadsadc 2013 04 04 08 42 31 8 我想使用 现有项目作为另一个报告的新项目的模板 Suite 但它只是覆盖现有项目而不是创建 即使我使用 另存为
  • 在Android中将base64字符串转换为图像[重复]

    这个问题在这里已经有答案了 我已经通过在线网站将图像转换为 Base64 我经历过这个link将 Base64 字符串保存在 String 中 但我收到一条错误消息 错误 38 36 错误 常量字符串太长 请让我知道如何在android中将
  • 获取文件标签javascript中的图像高度和宽度[重复]

    这个问题在这里已经有答案了 可能的重复 通过Javascript确定图像文件大小 尺寸 如何通过JavaScript在上传前上传预览图片 使用javascript获取文件标签中的图像高度和宽度 如何在文件标签中不刷新页面的情况下获取图像的高
  • 如何使用 C-API 设置 z3_solver 的超时?

    我使用 Z3 solver 进行非线性实数运算 我还想为求解器设置超时 我正在使用以下代码 但看起来超时不起作用 因为求解器永远运行 谁能帮我找出问题所在 Z3 solver solver cfg Z3 mk config ctx Z3 m
  • 如何知道 RecyclerView 是否有足够的内容可以滚动?

    目前 我正在使用带有 LinearLayout Manager 的 RecyclerView 和作为 HeaderView 的 EditText 来过滤列表的内容 如果 RecyclerView 的内容小于 RecyclerView 本身
  • 从应用程序将照片上传到 Facebook 相册

    我用过 req perms gt publish stream status update 我收到的错误是 致命错误 未捕获的 CurlException 26 创建在 facebook php 第 589 行抛出的表单数据失败 我的上传代
  • 悬停无法与 jQuery 工具一起使用 - jQuery

    当我添加jQuery 工具到我的页面 链接上的悬停效果不起作用 没有它 它也能工作
  • 在 NSTextField 上按下 Enter 键时如何执行某些操作

    我正在使用 Swift 为 Mac 编写一个应用程序 我在 NSTextField 对象中写入一个字符串 我想将其保存在 txt 文件中 我希望用户按下 Enter 键后立即发生这种情况 我的方法 writeToFile 准备好了 我不知道
  • 解压缩来自 WebClient 的 gzip 响应

    有没有一种快速的方法来解压缩使用 WebClient DownloadString 方法下载的 gzip 响应 您对如何使用 WebClient 处理 gzip 响应有什么建议吗 最简单的方法是使用内置的自动减压与HttpWebReques
  • GNU JavaMail:没有地址提供者:rfc822

    使用 OpenJDK 1 7 0 和 GNU JavaMail 1 1 2 在实际消息发送调用期间 SMTPTransport send msg 有时候是这样的 javax mail NoSuchProviderException No p
  • 在 Apple 审核之前获取 App Store URL

    在应用程序的 beta 测试阶段 在 Apple 审核该应用程序之前 是否可以生成应用程序商店 URL 我想在我的应用程序中添加一个指向 App Store 中我的应用程序的链接 用户可以与朋友分享该链接 我希望在 Beta 测试阶段提供此
  • 更改MFC控件中背景和标题的颜色

    我想更改 MFC 应用程序中的编辑控件 静态控件和按钮控件的文本颜色和背景颜色 该控件位于一个CDialogEx对话 我尝试添加 OnCtlColor 使用 Visual Studio 中的向导 在 WM CTLCOLR 消息上 但我无法设
  • 在 WKWebView 中禁用 cookie

    是否可以在 WKWebView 中禁用 cookie 和本地存储 假设这是我的设置 我想添加一些禁用它们的内容 import UIKit import WebKit class ViewController UIViewController
  • Python pandas 不识别特殊字符

    我正在尝试使用df column name str count 在 python pandas 中 但我收到 错误 没有可重复的 对于常规字符 该方法有效 例如df column name str count a 工作正常 另外 符号也有问
  • 生成包含条件项的列表

    是否可以创建一个包含条件项的数组 my a 1 condition 2 no op 3 这样 no op 是一个函数 如果 condition是假的 然后我得到列表 1 3 but if condition是真的 我明白了 1 2 3 背景
  • 使用自定义 UIBezierPath 剪切图像

    我想知道是否有人可以为我指出这个问题的正确方向 我有一个用户创建的UIBezierPath有几个点是由用户触摸引起的 我可以使用这些在沼泽标准 UIView 上创建形状 myPath fill 功能 我理想中想做的是使用路径为 UIImag
  • MySQL 布尔全文搜索中的“显示除所有内容”

    使用 MySQL 布尔全文搜索 http dev mysql com doc refman 5 1 en fulltext boolean html 前导减号表示 这个词不能出现在任何 返回的行数 注意 运算符仅用于 排除其他行 与其他搜索
  • 使用Java/JSP打印支票

    我正在开发一个现有的 Java Web 应用程序 此特定应用程序中的 HTML CSS JS JSP Servlet 和 Java 类 该应用程序当前使用小程序来打印支票 我的老板最近来找我 告诉我在针对最新版本的 Java 测试支票打印时
  • 链接消费者 Java 8

    您好 我遇到以下问题 假设我们有对象 Account 该对象 Account 是不可变的 因此随着时间的推移 我们对其执行操作 实际上是将其转换为另一种状态 例如Account可以变成ClosedAccount或NewAccount等等 现