Quoting myself. What is the reason for naming the methods: "from(xx)" instead of "of(xx)" as the existing ones taking varargs and so on?
Cheers Patrick Am 16.11.2013 um 17:14 schrieb Patrick Reinhart <patr...@reini.net>: > Hi Remi, > > That was also the first failed lookup try after starting with Lambdas, > specially because we got a lot of own implementation implementing Iterable. > It would have been more natural from me to find some according methods on the > Stream interface. Especially as a beginner. > > Cheers Patrick > > Am 16.11.2013 um 15:00 schrieb Remi Forax <fo...@univ-mlv.fr>: > >> During Devoxx Belgium, after the talk of Brian and Jose Paumard, there was >> an interesting discussion among some Java8 early adopters about the fact >> that in the API there no xommon way to get a Stream for anything that is >> conceptually a collection. >> >> I propose to introduce the following new methods on Stream: >> >> /** >> * Returns a sequential|Stream| with the iterable as its source. >> * >> * @param T the type of stream elements. >> * @param iterable the iterable used as source of the stream. >> * @return a sequential stream. >> */ >> public static <T> Stream<T> from(Iterable<T> iterable) { >> return StreamSupport.stream(iterable.spliterator(), false); >> } >> >> /** >> * Returns a sequential|Stream| with the collection as its source. >> * >> * @param T the type of stream elements. >> * @param collection the collection used as source of the stream. >> * @return a sequential stream. >> */ >> public static <T> Stream<T> from(Collection<T> collection) { >> return collection.stream(); >> } >> >> /** >> * Returns a sequential|Stream| with the array as its source. >> * >> * @param T the type of stream elements. >> * @param array the array used as source of the stream. >> * @return a sequential stream. >> */ >> public static <T> Stream<T> from(T[] array) { >> return Stream.of(array); >> } >> >> These methods are like the of() methods but of() overloads deal with values >> while from() deal with collections. >> >> This also re-introduce a way to get a stream from an unknown Iterable that >> was removed from Iterable >> because we want implementation of Iterable to be able to return Stream of >> primitives. >> I know that this is late in the game, but I think that given these methods >> just delegates to existing methods, >> it will be better to introduce them in Java8 than in Java9. >> >> cheers, >> Rémi >> >