JEP 186: Collection Literals

Per Bothner per at
Wed Jan 15 09:28:13 PST 2014

On 01/15/2014 09:14 AM, Remi Forax wrote:
> On 01/15/2014 06:04 PM, Per Bothner wrote:
>> (1) Target-typing means you don't have to redundantly specify T:
>> T v = { e1, ..., en};
>> vs
>> T v = T.of(e1, ..., en);
>> (2) Using the T.of form requires allocating an array,
>> which is then thrown away.
> I disagree for (1),

You mean (2), presumably.

> if you take a look to java.util.EnumSet by example,
> you will see that there are multiple overloads of 'of' to avoid to allocate
> an array in the common cases.

For EnumSet, the short cases are probably the common cases.
That doesn't help for lists that are longer than some small number.

However, I don't consider this a major motivation.  If performance
is a factor, it should be possible for the VM to special-case
the argument-passing.  Certainly for common well-known classes.
	--Per Bothner
per at

More information about the lambda-dev mailing list