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

Stuart Marks stuart.marks at oracle.com
Thu Dec 7 22:58:35 UTC 2017


[Martin: please review changes to the JSR 166 TCK.]

Another updated webrev for this changeset:

     http://cr.openjdk.java.net/~smarks/reviews/8060192/webrev.2/

This includes an override of toArray(IntFunction) in the implementation of 
Arrays.asList(), as requested by Tagir Valeev.

Overrides are also added for various wrapper classes in j.u.Collections. Turns 
out there's a test test/jdk/java/util/Collections/Wrappers.java that checks to 
ensure that the wrappers don't inherit any default methods. (This has been a 
source of bugs in the past.)

Significantly, this webrev also includes changes to several tests in the JSR 166 
TCK. The issue is that these tests have cases for null handling, where they call

     coll.toArray(null)

to ensure that NPE is thrown. Given that this method is now overloaded:

     toArray(T[])
     toArray(IntFunction)

passing null is now ambiguous and thus generates a compiler error. I've modified 
the tests to call toArray((Object[])null) which is a bit of a stopgap. I can't 
think of anything obviously better to do, though.

s'marks


More information about the core-libs-dev mailing list