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