当前位置:  开发笔记 > 编程语言 > 正文

Java 8流 - 在flatmap之后引用原始流对象

如何解决《Java8流-在flatmap之后引用原始流对象》经验,为你挑选了1个好方法。



1> Holger..:

您的原始代码包含逻辑错误:

Optional found = …
                         .map(a -> a.value.equals(greetingType))
                         .findAny();

这将返回任意比较的结果,在顺序上下文中,它可能是第一个元素的结果.

我很确定你真的想知道是否有任何匹配元素,因此应该使用

boolean found = …
               .anyMatch(a -> a.value.equals(greetingType));

这可以简单地用作谓词来查找具有匹配元素的第一个元素:

return xmlFromNms.getObject().stream()
    .filter(obj -> obj.getAttributes().stream()
                      .filter(  a -> a.name.equals(GREETING_TYPE))
                      .anyMatch(a -> a.value.equals(greetingType)))
    .findFirst().orElse(null);

推荐阅读
跟我搞对象吧
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有