Hi Stuart,
Stream.iterator() can be really really slow, it uses a pull semantics while the 
whole Stream push values. When designing it, the lambda EG saw it as an "escape 
hatch" in order to interropt with a legacy code than require an Iterator and 
not more. 

This proposal has the side effect of making Stream more different from its 
primitive counterpart IntStream, LongStream and DoubleStream which may be 
problematic because we are trying to introduce reified generics as part of 
Valhalla (there is a recent mail of Brian about not adding methods to 
OptionalInt for the same reason).

And, the real issue is how to deal with checked exceptions inside the Stream 
API, i would prefer to fix that issue instead of trying to find a way to 
workaround it.

regards,
Rémi


----- Mail original -----
> De: "Stuart Marks" <stuart.ma...@oracle.com>
> À: "core-libs-dev" <core-libs-dev@openjdk.java.net>
> Envoyé: Vendredi 1 Mars 2019 03:43:44
> Objet: Proposal: JDK-8148917 Enhanced-For Statement Should Allow Streams

> 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

Reply via email to