当前位置: 首页 > 知识库问答 >
问题:

Java流-检查列表是否为空

林念
2023-03-14

我想知道检查列表是否为空的最佳方法是什么。在我的Stream中,我调用或ElseThrow两次。它有效,但我不知道它是否正确?它看起来有点难看:

Optional.ofNullable(listCanBeNull)
                .orElseThrow(() -> new ResourceNotFoundException("the same error message"))
                .stream()
                .filter(configuration -> configuration.getId().equals(warehouseConfigurationId))
                .findAny()
                .orElseThrow(() -> new ResourceNotFoundException("the same error message"));

当列表为空并且没有找到任何项目时,我必须抛出错误

共有2个答案

拓拔奇
2023-03-14

Optional.ofNullable 可以變成(可能是空的)Stream,或者您可以立即使用 Stream.ofNullable。并做一个平面地图。

Stream.ofNullable(listCanBeNull)
        .stream()
        .flatMap()
        .filter(configuration -> couration.getId().equals(warehouseConfigurationId))
        .findAny()
        .orElseThrow(() -> new ResourceNotFoundException("the same error message"));
龙珂
2023-03-14

直接检查列表是否为空即可。只有当列表首先存在时,从列表中流式传输元素才有意义。

if(null != listCanBeNull) {
    // stream things from here
}
 类似资料:
  • 问题内容: 如何检查列表是否为空?如果是这样,系统必须给出一条消息,指出 List为空 。如果不是,则系统必须给出一条消息,指出 List不为空 。用户可以输入数字以停止程序。这是我现在拥有的代码,但这不起作用,它总是显示“列表不为空”。 问题答案: 就像: 请注意,快速浏览该文档将为您提供该信息。

  • 如何检查是否为空,如果不是,则抛出异常,作为非终端操作? 基本上,我正在寻找与下面代码等效的东西,但没有实现中间的流。特别是,在流被终端操作实际使用之前,不应该进行检查。

  • 问题内容: 例如,如果通过以下内容: 如何检查是否为空? 问题答案: pythonic的方法来自PEP 8样式指南(“是”表示“推荐”,“ 否”表示“不推荐”): 对于序列(字符串,列表,元组),请使用以下事实:空序列为假。

  • 问题内容: 我想知道是否有人知道使用和检查列表是否为空的方法? 我看到的最好方法就是使用JUnit: 但是我希望在Hamcrest有某种方法可以做到这一点。 问题答案: 好吧,总有 …但是我想那不是你的意思:) 或者: 在该类中是静态的。请注意,必须将转换为,这要归功于Hamcrest 1.2强大的泛型。 hamcrest 1.3可以使用以下进口产品

  • 问题内容: 所以我知道这是一个很普遍的问题,已经找到了解决方案。但是,当我尝试这样做时,它无法正常工作。 我的JTextField为空,并且未启用该按钮。当我在文本字段中写入内容时,该按钮未启用。 因此,我的程序应每秒检查一次此字段是否为空。只要有人在文本字段中写入内容,就应启用该按钮。^^ 问题答案: 为此,您需要在中添加更改侦听器(一个响应文本更改的侦听器),并且在内,您需要根据是否为空将其更

  • 问题内容: 以下代码是我一直在使用的从sql数据库中检索用户信息的代码。 但是,当数据库中没有用户名等于LoginUser.Username的条目时,(dt!= null)不会返回false。有没有其他方法可以检查sqlcommand是否成功? 问题答案: 如果没有匹配的记录,您将得到一个空白,因此您可以检查返回的记录数: 并且,稍微偏离主题的地方,请阅读您的问题下方的注释,然后使用Google术