如果流没有返回结果,Java 8 抛出异常[重复]

2023-12-24

我很好奇是否可以在以下情况下使用 orElseThrow() ,或者是否有更多 Java 8 方法来执行与 1-liner 相同的操作?

Collection<Foo> foo = blah.stream().filter(somePredicate).collect(Collectors.toList());
if (foo.isEmpty()) {
  throw new Exception("blah");
}

你可以试试这个:

Collection<Foo> foo = blah.stream().filter(somePredicate)
    .collect(Collectors.collectingAndThen(Collectors.toList(), Optional::of))
    .filter(l -> !l.isEmpty())
    .orElseThrow(() -> new Exception("blah"))

请注意,与您的代码相比,这会分配额外的Optional实例。

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

如果流没有返回结果,Java 8 抛出异常[重复] 的相关文章

随机推荐

  • 检测 PATH 中是否有特定的目录条目

    With bin bash 我如何检测用户的 PATH 变量中是否有特定目录 例如 if p HOME bin then echo Your path is missing bin you might want to add it else
  • 如何设置 databinder 调度以在 Eclipse 中使用?

    我想在Scala中编写一些简单的HTTP请求 但是Databinder Dispatch库只有sbt的指令 由于我是 Eclipse 的相对新手 有人可以提供有关如何在 Eclipse 中的 Scala 项目中使用它的说明吗 我正在使用 S
  • 默认时间戳显示 oracle 中的本地时间

    我创建了一个带有created time 列的表 该表的默认时间为systimestamp 当我向其中插入一行时 时间显示的是我的当地时间 23 02 18 08 49 05 430419000 上午 但是当我查询 select sysst
  • Windows Phone 7:如何打开网络浏览器?

    如何在 Windows Phone 7 中打开 Web 浏览器 我不在乎它是默认浏览器还是嵌入式浏览器 但如果两者都可能 我想知道 Windows Phone 论坛 gt Windows Phone 7 gt 打开网络浏览器 http so
  • 如何更改 unordered_map 中的键?

    我需要使用平均支持恒定时间查找的数据结构 我认为使用std unordered map是一个好方法 我的数据是数字的 集合 115 190 380 265 这些数字不必按特定顺序排列 我需要有关于O 1 确定该数据结构中是否存在给定数字的时
  • 如何在 Laravel 中启用错误报告?

    我正在使用 Laravel 5 2 我正在尝试导入包含超过 18000 条记录的 Excel 工作表 出现了下面的错误 本地主机页面无法正常工作 localhost is currently unable to handle this re
  • Terminfo smkx 和应用程序光标键与应用程序键盘

    XTerm 控制序列 http invisible island net xterm ctlseqs ctlseqs html指定以下按键序列 CSI 1 h Application Cursor Keys DECCKM CSI 1 l N
  • 如何判断 AVAudioPlayer 已经播放完毕

    我正在开发一个使用以下方式播放声音的应用程序AVAudioPlayer 我想知道声音何时播放完毕 我想在声音停止播放时更改图像 这是我用来创建播放器的代码 NSURL url NSBundle mainBundle URLForResour
  • 显示带有键类型和引用的 MYSQL 表列

    我需要一个查询 INFORMATION SCHEMA 它将针对给定的模式和表名称向我显示具有以下属性的所有表列 它是什么键类型 PK gt 主键 UQ gt 唯一键 FK gt 外键 什么是键名称 如果是外键 则引用 schema tabl
  • 具有 ModelIO 的混合拓扑(四路/三路)

    我正在使用 ModelIO 导入一些简单的 OBJ 资源 如下所示 let mdlAsset MDLAsset url url vertexDescriptor nil bufferAllocator nil preserveTopolog
  • Windows 上的通用 ctag

    我是 ctags 新手 在阅读了有关该程序的一些信息后 我得出的结论是 Universal ctags 是最新版本 exhuberant ctags 的后继者 并且仍在积极开发中 https ctags io https ctags io
  • JAXB 编组声明的父类与实际运行时子类

    我正在使用 JAXB 来编组一个类 该类具有声明为类 Foo 的实例变量 在运行时 该实例变量被设置为 Foo 子类的实例 比如说 FooBar 类 Foo 和 FooBar 上都有基本的 JAXB 注释 XML 输出显示正在封送 Foo
  • 设置 PHP 的默认时区

    在我的网络应用程序中 我让用户从列表中选择他们喜欢的时区 其中包含PHP 支持的所有时区 http www php net manual en timezones php 这么说吧 POST timezone 是所选时区 e g Ameri
  • 如何向 topojson 文件添加属性?

    给定一个 data tsv 文件 例如 id code name 1 AL Alabama 2 AK Alaska 4 AZ Arizona 5 AR Arkansas 6 CA California 给定一个 topojson json
  • Google 脚本中的字符串以以下开头

    我正在为我们正在进行的一些选举编写数据转换脚本 第一部分将所有名称更改为大写 这部分脚本工作正常 但是 我对脚本的第二部分有疑问 有些 ID 会有 S S123456 有些则没有 S 123456 出于我的目的 我需要所有 ID 开头都没有
  • mybatis中返回HashMap,并在spring MVC中作为ModelAttribute使用

    我想使用 spring mvc modelAttribute 在 Jsp 页面中显示类别列表 在我的 mapper xml 文件中是
  • 使用 Newtonsoft 在 C# 中通过 JSON 模式验证 JSON

    使用 JSON Schema 验证 JSON 返回值始终为 true 使用Newtonsoft进行验证和测试here https www jsonschemavalidator net 与模式和数据 它总是返回 未发现错误 JSON 根据模
  • 在字符串中使用空字符 (C++)

    我正在温习 C 偶然发现了关于字符串 字符数组和空字符的奇怪行为 0 下面的代码 include
  • 有哪些优秀的 Ruby on Rails 博客? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我 6 个月前开始学习 Rails 到目前为止我很喜欢它背后的社区 有大量的论坛和文档资源可供使用 但
  • 如果流没有返回结果,Java 8 抛出异常[重复]

    这个问题在这里已经有答案了 我很好奇是否可以在以下情况下使用 orElseThrow 或者是否有更多 Java 8 方法来执行与 1 liner 相同的操作 Collection