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

Rezaei, Mohammad A. Mohammad.Rezaei at gs.com
Tue Nov 24 14:58:51 UTC 2015

Can the Javadoc for of() (no args) be enhanced to spell out the cost/garbage semantics? Collections.emptyList() does a great job of that:

     * @implNote
     * Implementations of this method need not create a separate <tt>List</tt>
     * object for each call.   Using this method is likely to have comparable
     * cost to using the like-named field.  (Unlike this method, the field does
     * not provide type safety.)


>-----Original Message-----
>From: core-libs-dev [mailto:core-libs-dev-bounces at openjdk.java.net] On Behalf
>Of Stuart Marks
>Sent: Tuesday, November 24, 2015 1:26 AM
>To: core-libs-dev
>Subject: RFR(m): JEP 269 initial API and skeleton implementation (JDK-8139232)
>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-
>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
>a lot. This number should be sufficient, though, to handle the vast majority
>cases without having to switch to varargs. Note that the clutter is only in
>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.
>	http://openjdk.java.net/jeps/269
>API spec (basically List, Map, and Set):
>	http://cr.openjdk.java.net/~smarks/reviews/jep269/api.20151123/
>	http://cr.openjdk.java.net/~smarks/reviews/jep269/specdiff.20151123/over
>	http://cr.openjdk.java.net/~smarks/reviews/jep269/webrev.20151123/

More information about the core-libs-dev mailing list