RFR(s): 8060192: Add default method Collection.toArray(generator) (original) (raw)

Remi Forax forax at univ-mlv.fr
Tue Dec 5 07:03:47 UTC 2017


Hi Martin,

----- Mail original -----

De: "Martin Buchholz" <martinrb at google.com> À: "Stuart Marks" <stuart.marks at oracle.com> Cc: "core-libs-dev" <core-libs-dev at 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 into an array of String is fairly frequent, i think.

The main issue with the current API, 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 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



More information about the core-libs-dev mailing list