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

Java8 forEach只适用于一些?

戚飞雨
2023-03-14

请不要使用“if”语句,除非你在解释为什么没有“if”语句是不可能的。

List<Cube> revised =
    cubes.filter(p)
    .map(c -> f(c))
    .map(c -> {
        if(c.prop()) {
           c.addComment(comment);
        }
        return c;
    })
    .collect(Collectors.toList());
List<Cube> revised = 
    cubes.filter(p)
    .map(c -> f(c));

revised
    .filter(Cube::prop)
    .forEach(c -> c.addComment(comment)); // can also map still

共有1个答案

史经业
2023-03-14

当您有peek时,不需要使用返回相同元素的map。下面的代码通过使用短路操作符“作弊”:

cubes.filter(p)
    .map(c -> f(c))
    .peek(c -> c.prop() && c.addComment(comment))

我认为使用可选的“现代”方式可读性差得多:

cubes.filter(p)
    .map(c -> f(c))
    .peek(c -> Optional.of(c).filter(Cube::prop).ifPresent(c -> c.addComment(comment)))
 类似资料:
  • 我的python 2.7脚本在我的Ubuntu系统上工作,如果我称之为使用 或从bash脚本使用 但是如果我从Py魅力调用它,我会得到oauth错误,并且从命令提示符 在导入熊猫行抛出一个错误: 我试过了 如Python Pandas中所述,卸载pip,然后为熊猫、Numpy和smpy安装pip-缺少必需的依赖项['Numpy'] 1 上面使用了标志-升级和-用户来尝试让包应用到我的用户帐户而不是

  • 我在Spring Security中使用JDBC身份验证。我在MySQL数据库中有两个用户名密码对。 但只有第一对可以登录。第二个错误如下: 您的登录尝试未成功,请重试。 原因:糟糕的资历 我试着用谷歌浏览器登录。但没用。 以下是授权代码:

  • 我对代码有问题,因为它不能正常工作。这部分代码在第一个播放器上运行时有效 当第二个玩家接触水时,什么也没有发生。没有错误。下面是完整的代码: 我很确定第二个玩家的“结束”是真的,所以它不会这样做。

  • 为什么缩放效果只适用于第一张图像? ffmpeg-img  d.jpeg-i1。mp3-vf zoompan=z='zoom 0.002':d=25*5:s=1280x800-pix_fmt yuv420p-c:v libx264-t 01:05:00 out12345。mp4 我有3张图片,1个音频,我试图创建一个视频,并期望每个图像都有缩放效果。 这是我得到的,第一个图像显示缩放效果,然后第

  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。