无法在一个流中同时进行filter->forEach->collect吗?

30 浏览
0 Comments

无法在一个流中同时进行filter->forEach->collect吗?

我想实现类似以下的功能:

items.stream()
    .filter(s-> s.contains("B"))
    .forEach(s-> s.setState("ok"))
.collect(Collectors.toList());

过滤,然后改变过滤结果的一个属性,最后将结果收集到一个列表中。然而,调试器显示如下错误信息:

无法在原始类型void上调用collect(Collectors.toList())

我需要使用两个流来实现吗?

0