RFR(m): JEP 269 initial API and skeleton implementation (JDK-8139232)

Stuart Marks stuart.marks at oracle.com
Tue Nov 24 06:26:27 UTC 2015


Hi all,

Please review these API and implementation changes that comprise the first 
integration of JEP 269. I intend to push this under the "initial API and 
skeleton implementation" subtask, JDK-8139232.

Changes since the previous review:
  - more precise wording regarding static factory methods (thanks Remi)
  - add defensive copy and test for List.of(E...) (thanks Michael Hixson)
  - more null checking and tests
  - various small wording cleanups
  - @since 9

I've left the fixed-arg overloads at ten for all three interfaces. The fixed-arg 
methods provide a useful fast path for initialization and non-desktop, 
non-server cases. The cost is some API clutter; ten elements or pairs is rather 
a lot. This number should be sufficient, though, to handle the vast majority of 
cases without having to switch to varargs. Note that the clutter is only in the 
API definitions, and it doesn't intrude into the point of call (at least for 
List and Set). For the Map case, it's particularly useful to have lots of 
fixed-arg overloads, since the varargs case requires switching APIs and adding 
more boilerplate.

I've also updated the JEP text to reflect the current proposal, mainly the 
removal of the static factory methods from the concrete classes.

JEP:

	http://openjdk.java.net/jeps/269

API spec (basically List, Map, and Set):

	http://cr.openjdk.java.net/~smarks/reviews/jep269/api.20151123/

Specdiff:

	http://cr.openjdk.java.net/~smarks/reviews/jep269/specdiff.20151123/overview-summary.html

Webrev:

	http://cr.openjdk.java.net/~smarks/reviews/jep269/webrev.20151123/

Thanks,

s'marks



More information about the core-libs-dev mailing list