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

我可以在流链中访问先前lambda的值吗?

如何解决《我可以在流链中访问先前lambda的值吗?》经验,为你挑选了1个好方法。

我有这个流代码,它不编译:

itemList.stream()
    .map(im -> item2dogsMap.get(im.getEan()))
    .flatMap(List::stream)
    .forEach(d -> System.out.println("item" + im + " with dog " + d));

问题在于forEach我需要的陈述imd.但它无法解决im这里.

我可以创建一个带有ItemAndDog两个值的类,并在map语句中执行一个新的操作.但这对我来说太过分了.有没有办法在不增加额外课程的情况下做到这一点?



1> Tagir Valeev..:

您可以解决在您可以flatMap访问这两个变量的位置内创建结果字符串的问题,如下所示:

itemList.stream()
    .flatMap(im -> item2dogsMap.get(im.getEan()).stream()
        .map(d -> "item" + im + " with dog " + d))
    .forEach(System.out::println);


@BetaRide,你真的试过吗?它是完全合法且并行兼容的流API使用.试一试.
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有