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

Reply via email to