Java 8 Stream IllegalStateException: Stream has already been operated on or closed

前端 未结 6 671
孤独总比滥情好
孤独总比滥情好 2020-11-27 07:45

I\'m trying to generate Order instances using the Stream API. I have a factory function that creates the order, and a DoubleStream is used to initialize the amount of the o

6条回答
  •  挽巷
    挽巷 (楼主)
    2020-11-27 08:21

    The answer is in the javadoc of Stream (emphases mine):

    A stream should be operated on (invoking an intermediate or terminal stream operation) only once. This rules out, for example, "forked" streams, where the same source feeds two or more pipelines, or multiple traversals of the same stream. A stream implementation may throw IllegalStateException if it detects that the stream is being reused.

    And in your code, you do use the stream twice (once in createOrder() and the other usage when you .limit().forEach()

提交回复
热议问题