gpt4 book ai didi

java - Java 流中缺少返回语句

转载 作者:行者123 更新时间:2023-12-05 01:55:38 25 4
gpt4 key购买 nike

我有以下列表和 map :

final List<Product> productList = productService.findAll(uuidList);

Map<UUID, Product> productMap = new HashMap<>();

我想将元素对添加到 map 中,如下所示:

productList.stream().map(product -> {
productMap.put(product.getUuid(), product);
});

但是,最后一行抛出“Missing return statement”错误。当我如下图更新的时候,它已经没有了,但是这次return也没用。那么,我应该如何将 UUIDProduct 对添加到我的 map 中?

最佳答案

这里不需要使用map,你可以简单地使用forEachmap 方法旨在创建另一个流,其元素是从原始流“映射”而来的。forEach 只是在每个元素上应用一个消费者,在这种情况下,消费者将将元素放入 HashMap 中。

productList.stream().forEach(product -> 
productMap.put(product.getUuid(), product)
);

您还可以使用 map 收集器来简化代码:

Map<UUID, Product> productMap = productList.stream()
.collect(Collectors.toMap(Product::getUuid, Function.identity()));

至于为什么带有 map 的原始代码没有编译,这是因为 map 方法需要一个 Function ,根据定义一个值并返回一些东西。由于您使用的是大括号,因此您应该添加一个 return 语句。或者您可以删除括号,但请记住我上面提到的内容,并且在这种情况下返回值没有意义,因为它没有被使用:

productList.stream().map(product -> 
productMap.put(product.getUuid(), product);
);

关于java - Java 流中缺少返回语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70180473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com