Прямая передача инициализатора массива в параметр метода не работает

package arraypkg;

import java.util.Arrays;

public class Main
{
    private static void foo(Object o[])
    {
        System.out.printf("%s", Arrays.toString(o));
    }

    public static void main(String[] args)
    {
       Object []o=new Object[]{1,2,3,4,5};
       foo(o);                     //Passing an array of objects to the foo() method.

       foo(new Object[]{6,7,8,9}); //This is valid as obvious.

       Object[] o1 = {1, 2};      //This is also fine.
       foo(o1);

       foo({1,2});               //This looks something similar to the preceding one. This is however wrong and doesn't compile - not a statement.
    }
}

В предыдущем фрагменте кода все выражения, кроме последнего, скомпилированы и работают нормально. Хотя последний оператор выглядит примерно так, как его непосредственный оператор, компилятор выдает ошибку времени компиляции - недопустимое начало выражения - а не оператор. Зачем?

Ответы на вопрос(3)

Ваш ответ на вопрос