Stream.toArray()
Remi Forax
forax at univ-mlv.fr
Wed Dec 5 07:33:43 PST 2012
Restarting a thread that ends without clear winner.
Currently, Stream.toArray() is specified as:
Object[] toArray()
which is not what users want, given the lack of reified generics and the
fact that it's usually hard for a user to predict the number of elements
of a Stream,
the best signature seems to be:
<A> A[] toArray(Class<A> arrayClass)
with arrayClass.isArray() returning true and
arrayClass.getComponentType().isPrimitive() returning false
(or if you prefer Object[].class.isAssignableFrom(arrayClass) returning
true)
example of usage,
Person[] coolPersons =
persons.stream().filter(person#isCool()).toArray(Person[].class);
cheers,
Rémi
More information about the lambda-libs-spec-observers
mailing list