У меня есть метод с параметром массива, например:
public static void foo(int[] param) {
// Some code
}
А также я могу вызвать метод, написав как
foo(new int[3]);
Обычно мы объявляем и инициализируем массив с помощью оператора new или инициализатора с двойными фигурными скобками, например {1, 2, 3}. Например, int[] foo = new int[3];
или int[] foo = {1, 2, 3};
.
Но невозможно использовать инициализатор двойной скобки в качестве параметра для метода. {}
доступен только для создания объекта массива.
И вот мой вопрос: Есть ли отличия между новым оператором и {}
? Если есть, то что это?
foo (new int[] {1, 2, 3})
работает - person Eran   schedule 11.03.2015new
- это int x[] = new int[10] вы выделяете 10 местоположений (только длина, без значений), они содержат значение инициализации на основе типа (примитивные типы) или NULL для объектов, однако{1,4,7}
будет инициализировать значения + длина или{}
будет означать новый массив сlength=0
- person Yazan   schedule 11.03.2015void foo(int...params)
и вызвать с помощьюfoo(1, 2, 3)
. - person Walter Laan   schedule 11.03.2015