Proposal: JDK-8148917 Enhanced-For Statement Should Allow Streams

Stuart Marks stuart.marks at
Fri Mar 1 02:43:44 UTC 2019

Hi all,

Please review and comment on this proposal to allow Stream instances to be used 
in enhanced-for ("for-each") loops.


Occasionally it's useful to iterate a Stream using a conventional loop. However, 
the Stream interface doesn't implement Iterable, and therefore streams cannot be 
used with the enhanced-for statement. This is a proposal to remedy that 
situation by introducing a new interface IterableOnce that is a subtype of 
Iterable, and then retrofitting the Stream interface to implement it. Other JDK 
classes will also be retrofitted to implement IterableOnce.

Full Proposal:

Bug report:


Note, this changeset isn't ready to push yet. In particular, it has no tests 
yet. However, the implementation is so simple that I figured I should include 
it. Comments on the specification wording are also welcome.



More information about the core-libs-dev mailing list