使用stream报错:stream has already been operated upon or closed

曾经终败给现在 2023-10-09 14:56 102阅读 0赞

如下例子:

  1. Stream<Role> stream = User.getRoles().stream();
  2. stream.map(Role::getRoleTag).collect(Collectors.toList());
  3. stream.map(Role::getMenus)

编译会报stream has already been operated upon or closed 错误
1、原因
stream流属于管道流,只能被使用一次,若需再次使用,需重新创建一个新的stream流对象

2、解决方法
创建新的stream流对象

  1. User.getRoles().stream().map(Role::getRoleTag).collect(Collectors.toList());
  2. ......
  3. ......
  4. User.getRoles().stream().map(Role::getMenus)

3、总结
每个stream流对象只能使用一次,需多次使用,则要多次创建

发表评论

表情:
评论列表 (有 0 条评论,102人围观)

还没有评论,来说两句吧...

相关阅读