线上甲方开发 返回接口有问题
截取日志看到
stream has already been operated upon or closedava.lang.IllegalStateException: stream has already been operated upon or closedat java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:229)at java.util.stream.ReferencePipeline.collect(Referencepipeline,java:499)
遂拉取代码 看到最新代码提交记录 反馈不是我们修改的
甲方开发 也确认是他们修改的
斯认为这是jdk1.8 很基础的问题 于是让他们自己去调试了 原因很简单
StreamAPI只能被消费一次,重复使用已建立的流会报异常!
所以stream流是线程安全的!
解决: 创建一个新的Stream流,使用不同的Stream流 来执行遍历操作 和得到 当前流中的元素个数。