Hi Martin,

----- Mail original -----
> De: "Martin Buchholz" <marti...@google.com>
> À: "Stuart Marks" <stuart.ma...@oracle.com>
> Cc: "core-libs-dev" <core-libs-dev@openjdk.java.net>
> Envoyé: Mardi 5 Décembre 2017 05:26:02
> Objet: Re: RFR(s): 8060192: Add default method Collection.toArray(generator)

> The needToWorkAround6260652 changes ought to be in a separate changeset.
> 
> The biggest question is whether Collection.toArray(generator) pulls its
> weight, especially in view of
> https://shipilev.net/blog/2016/arrays-wisdom-ancients.
> 
> I rarely want to dump elements into a typed array.  Dumping into Object[]
> with toArray() is just fine for me (but I'm a biased core library
> developer).

Dumping an ArrayList<String> into an array of String is fairly frequent, i 
think.

The main issue with the current API, <T> T[] toArray(T[] array), is that T can 
be unrelated to E (the type of the element in the collection) so one can write
  ArrayList<Integer> list = ...
  String[] array = list.toArray(new String[0]); 
it may even works if the list is empty.

It's getting worst if E and T can be a primitive type (with valhalla), because 
toArray(T[]) as to support all combinations.

So in my opinion, introducing toArray(generator) is a step in the right 
direction.

cheers,
Rémi

Reply via email to