array and diamond

Rémi Forax forax at univ-mlv.fr
Sun Dec 11 15:21:23 UTC 2011


On 12/10/2011 12:38 PM, maurizio cimadamore wrote:
> On 09-Dec-11 10:56 PM, Rémi Forax wrote:
>> Is there a reason why the diamond syntax can't be used
>> with an array ?
>>
>> List<?>[] list = new List<>[12];
>>
> Because the current inference rules would end up inferring:
>
> List<?>[] list = new List<Object>[12];
>
> If you special-cased diamond on arrays so that it is inferred as:
>
> List<?>[] list = new List<?>[12];
>
> Then it would be safe.

but in that case
   List<?>[] list = new List<?>[12];
is not equivalent to
   static <E> List<E>[] foo() { ... }
   ...
   List<?>[] list = foo();
because as you said, Object will be inferred.

Is there another case where diamond inference behave differently from 
method inference ?

>
> Maurizio

Rémi




More information about the core-libs-dev mailing list