为什么我的 forEach lambda 不允许我使用 Java 中的 return 语句退出函数?

为什么我的 foreach lambda 不允许我使用 java 中的 return 语句退出函数?

假设你有一篮子食物:

list basket = list.of(     new food("apple", fruit),     new food("banana", fruit),     new food("carrot", vegetable),     new food("orange", fruit),);

并且要求仅接受仅装满水果的篮子。为了满足这个要求,您决定实现一个 for 循环:

private boolean containtsonlyfruits(list basket) {for (food food : basket) {        if (food.getfoodtype() != fruit) {            return false;        }    }    return true;}

然后,您记得您一直在学习 java lambda 和更实用的方法,因此您决定在 foreach lambda 中编写相同的内容:

private boolean containtsonlyfruits(list basket) {    basket.foreach(food -> {        if (food.getfoodtype() != fruit) {            return false;        }    });    return true;}

只是遇到一个错误:

意外的返回值

这是为什么?

lambda 只不过是一个函数。在这种情况下,是一个匿名函数,或者换句话说,是一个没有名称的函数。就像任何其他函数一样,lambda 可以接收参数并期望返回一些内容。

立即学习“Java免费学习笔记(深入)”;

当你尝试从 foreach lambda 返回 false 时,你实际上是在尝试退出这个匿名函数并输出一个布尔值。但是,foreach 函数预计不会返回任何结果。这根本不是这个功能的实现方式。

事实上,如果你看一下 foreach 函数的实现,你会发现它接受一个 consumer:

default void foreach(consumer action) {    objects.requirenonnull(action);    for (t t : this) {        action.accept(t);    }}

消费者是一个接口,表示接受单个输入参数且不返回结果的操作。在此实现中,您可以看到在底层,foreach 函数使用 foreach 循环,执行给定的操作并且不返回任何内容。

vizcom.ai vizcom.ai

AI草图渲染工具,快速将手绘草图渲染成精美的图像

vizcom.ai 139 查看详情 vizcom.ai

因此,为了满足函数式方法中的操作,我们需要找到另一个 lambda。这里有一个很好的候选者:allmatch。

使用 allmatch lambda,我们可以检查篮子中的所有元素是否都是水果:

private boolean onlyfruits(list basket) {    return basket.stream().allmatch(food -> food.getfoodtype() == fruit);}

如果是这样的话,我们的 lambda 将返回 true。如果我们看一下 allmatch 的内部:

boolean allMatch(Predicate predicate);

我们将看到 allmatch 函数需要一个谓词。

谓词是一个函数式接口,就像消费者一样,但它的工作方式有点不同。 consumer 表示接受单个输入参数且不返回结果的操作,而 predicate 表示一个参数的谓词(布尔值函数),用于测试对象的条件并返回布尔值(true 或 false) ).

还有其他非常重要的功能接口。你能告诉我它们是什么以及它们如何工作吗?

保持好奇心!

贡献

写作需要时间和精力。我喜欢写作和分享知识,但我也有账单要付。

如果您喜欢我的作品,请考虑通过“买杯咖啡”捐款:https://www.buymeacoffee.com/raphaeldelio

或者发送给我比特币:1hjg7pmghg3z8rath4aiuwr156bgafj6zw

以上就是为什么我的 forEach lambda 不允许我使用 Java 中的 return 语句退出函数?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/886240.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月28日 12:51:02
下一篇 2025年11月28日 12:57:49

相关推荐

  • 赚钱游戏软件有哪些?真正赚钱的游戏软件排行榜前十名推荐

    在当今快节奏的数字时代,通过游戏赚钱的概念正变得越来越流行。对于寻求额外收入来源或希望将爱好转化为收入的人来说,存在大量声称提供高回报的游戏软件。以下我们整理了目前备受推崇的真正赚钱游戏软件排行榜前十名,助力您踏上游戏致富之旅。 赚钱游戏软件排行榜前十名 在众多宣称可以赚钱的游戏软件中,以下是根据用…

    2025年12月2日 行业动态
    000
  • Java中如何开发区块链?以太坊智能合约

    在Java里开发区块链本身,这其实是个有些误解的说法。大多数时候,我们说的“用Java开发区块链”,并不是指从零开始写一个像以太坊或比特币那样底层的区块链协议。那复杂度太高,而且也缺乏必要性。更准确地讲,我们是用Java来构建与现有区块链(比如以太坊)进行交互的应用,尤其是涉及到智能合约的部署和调用…

    2025年12月2日 java
    000
  • 拥抱未来:塑造 2024 年的顶尖技术

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 在充满活力的技术创新领域,每一年都会带来一系列进步,重新定义我们的生活、工作以及与周围世界互动的方式。 步入 2024 年,大量突破性技术有望彻底改变我们生活的各个方面,从医疗保健、交通到通信和…

    2025年12月1日 科技
    000
  • 快手前高管涉贪 1.4 亿,创下大厂贪腐新纪录

    8 月 26 日消息,据《财经故事荟》8 月 25 日报道,今年 7 月底有消息称,本应补贴给服务商和运营商的 1.4 亿元巨额奖励金,被北京市海淀区某短视频平台公司冯某等人非法侵吞,又被后者通过比特币等方式洗白赃款。消息曝光之后,不少传闻猜测,“冯某”是前快手磁力引擎副总裁冯超,他在今年 3 月从…

    2025年11月30日
    100
  • PHP中如何精确显示JSON数据中的小数值(避免科学计数法)

    本教程旨在解决PHP中从JSON解析小型浮点数时,其自动转换为科学计数法的问题。它将演示如何利用printf()或sprintf()函数,通过指定输出精度来确保浮点数以精确的十进制形式展现,这对于金融或需要高精度显示的数据至关重要。 问题剖析:PHP浮点数显示特性 在php中,当处理非常小或非常大的…

    2025年11月27日
    000
  • 认证的加密货币恢复专业人员“见Saclux Comptech Specialst

    Saclux Comptech专家:值得信赖的加密货币恢复专家 Saclux Comptech专家在加密货币恢复领域享有盛誉,其专业知识和高成功率赢得了众多客户和业内人士的认可。 专家评价: “Saclux Comptech专家是加密货币恢复领域值得信赖的合作伙伴,其专业知识和成功率无与伦比。”——…

    2025年11月26日 web前端
    000
  • 解决Python加密货币价格监控中的KeyError:深入指南

    本文旨在解决在使用Python监控比特币等加密货币价格时遇到的`KeyError`问题。通过分析错误原因,我们将提供改进后的代码示例,重点关注API请求频率控制和错误处理,以确保程序的稳定性和可靠性。学习如何避免`KeyError`,并构建一个更健壮的加密货币价格监控系统。 在使用Python监控加…

    2025年11月10日 后端开发
    100
  • html5文件如何实现区块链存证 html5文件哈希值上链的流程

    生成HTML5文件的SHA-256哈希值并记录;2. 选择支持数据上链的区块链平台并获取访问权限;3. 通过智能合约或交易附加字段将哈希值写入区块链;4. 保存交易ID、区块信息等作为存证凭证;5. 验证时重新计算文件哈希并与链上值比对,一致则未被篡改。 如果您需要将HTML5文件进行区块链存证,确…

    2025年11月10日 web前端
    100
  • php框架与区块链技术的融合趋势

    php框架与区块链技术的融合在区块链开发中扮演着关键角色,为开发者提供了构建强大、安全的应用程序所需的工具。这些框架的高性能、安全性、灵活性使其成为区块链开发的理想选择,并被广泛用于实际应用,如以太坊经典区块链浏览器、加密收藏游戏和企业级区块链解决方案。 PHP 框架与区块链技术的融合趋势 前言 区…

    2025年11月9日 后端开发
    000
  • 有哪些热门的股票交易app开源项目值得参考?

    在信息化快速发展的今天,投资股市已成为许多人增值资产的途径之一。为了更好地服务于广大投资者,各种股票交易app如雨后春笋般涌现,其中不乏一些优秀的开源项目。这些项目不仅能帮助开发者快速学习和入门股票交易app的开发,还为希望打造个性化、定制化股票交易工具的人提供了可能。本文将介绍一些热门的股票交易a…

    2025年11月8日 行业动态
    000
  • 反击AMD RX Vega!GTX 1070Ti亮相:2304个CUDA

    昨日有消息传出,nvidia计划推出gtx 1070 ti新款显卡。 而在卡吧论坛上,网友们已经捕捉到了一款DIY整机的宣传配置单,其中除了常见的i7-7700K处理器、芝奇32GB内存套装、Intel 750 PCIe SSD外,还赫然出现了华硕GTX 1070 Ti Strix猫头鹰显卡。 从产…

    2025年11月8日 电脑教程
    000
  • 电脑Windows系统中faust勒索病毒了怎么修复,Windows系统如何预防faust勒索病毒?

    faust勒索病毒是一种新兴的勒索软件,与phobos勒索家族软件非常相似。phobos是一种攻击力极强的勒索软件,一旦打开HTA勒索信息,标志着Phobos加密过程已经完成。即使在没有互联网连接的情况下,它也能在后台运行,对目标文件进行快速加密。faust作为Phobos家族的一员,主要针对Win…

    2025年11月7日 系统教程
    000
  • Meme 代币激增:本周的上涨一览

    Meme 代币激增:本周的上涨一览 本周对于模因硬币爱好者来说尤其令人兴奋,因为几种流行硬币的价值大幅上涨。这些代币通常以其俏皮和幽默的品牌为特点,在加密货币市场上获得了关注,吸引了经验丰富的投资者和新手。 推动激增的关键因素 社区参与:在模因币空间中,社区的力量不可低估。由于 Twitter 和 …

    2025年11月7日 web前端
    000
  • 适合初学者的比特币投资

    通过 TrandexPro.com 释放比特币投资的力量 在快速发展的金融领域,比特币已成为一种开拓性资产,以其巨大的回报潜力吸引着全世界的投资者。无论您是经验丰富的交易者还是热情的新手,比特币投资都已成为增加财富的令人垂涎的途径。通过像 TrandexPro.com 这样的平台,您只需 100 美…

    2025年11月7日 web前端
    100
  • 医生旅程:恢复在线交易中损失的资金

    我叫Patrick Bonneau,在洛杉矶行医已有15年。我对比特币和其他加密货币平台并不了解,因此不幸掉入了一个在线交易骗局,损失近150万美元。起初,该平台看起来很正规,有专业的视频和诱人的收益截图。投资后,初期一切顺利,骗子还会定期更新信息。但很快,平台就失联了,我无法访问账户或提取资金,身…

    2025年11月6日 web前端
    000
  • 美股遭遇“黑色星期五”,纳指暴跌3.56%,创4月以来最大单日跌幅

    昨夜今晨,美股市场经历了一场惊心动魄的大跳水。周五美股在早盘高开后,盘中突然直线跳水,跌幅在午后持续扩大。 截至收盘,标准普尔500指数大跌2.71%,纳斯达克综合指数更是暴跌3.56%,双双创下了自今年4月以来的最大单日跌幅;道琼斯工业平均指数也下跌了1.9%。 避险情绪升温,原油、比特币巨震 市…

    2025年11月5日
    000
  • BCH币是否值得长期持有

    bch币,即比特币现金,是比特币的一个分叉币种。对于它是否值得长期持有,需要综合多方面因素来考量。 从技术层面来看,bch继承了比特币的一些特性。它具有相对较大的区块容量,这使得交易处理速度更快,手续费更低,能更好地应对大规模商业应用场景。这一技术优势为其长期发展奠定了一定基础。如果未来加密货币市场…

    2025年11月4日 软件教程
    000
  • 通义灵码客户端下载 通义灵码客户端怎么下载安装教程

    通义灵码客户端是一款专为加密货币用户设计的多功能软件,旨在提供安全、便捷的数字资产管理体验。它支持多种加密货币的存储、交易和管理,并且集成了先进的安全措施,以保护用户的资产和隐私。在加密货币圈中,通义灵码客户端因其用户友好的界面和强大的功能而广受欢迎。 ☞☞☞AI 智能聊天, 问答助手, AI 智能…

    2025年11月4日
    100
  • 轻松集成加密货币信息:使用 crypto-technology/laravel-cryptocurrency 库

    可以通过一下地址学习composer:学习地址 最近,我在开发一个与加密货币相关的 Laravel 项目时,遇到了一个棘手的问题:如何在不使用数据库的情况下,快速获取和展示各种加密货币的信息。尝试了多种方法后,我发现 crypto-technology/laravel-cryptocurrency …

    开发工具 2025年11月1日
    000

发表回复

登录后才能评论
关注微信