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

Stuart Marks stuart.marks at oracle.com
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.

Abstract

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:

     http://cr.openjdk.java.net/~smarks/reviews/8148917/IterableOnce0.html

Bug report:

     https://bugs.openjdk.java.net/browse/JDK-8148917

Webrev:

     http://cr.openjdk.java.net/~smarks/reviews/8148917/webrev.0/

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.

Thanks,

s'marks


More information about the core-libs-dev mailing list