Ваш код не компилируется так, как вы его написали. Но это будет, и, возможно, это то, что вы хотите:
public void foo(int... v) {
// ...
}
public static void main(String args[]) {
foo(1, 2, 3);
}
Здесь значения, передаваемые в foo
будут автоматически преобразованы в массив. Значение v
будет фактически int[]
.
В качестве альтернативы, сохраняя оригинальную подпись foo
, вы могли бы написать так:
public void foo(int[] v) {
// ...
}
public static void main(String args[]) {
int[] params = {1, 2, 3};
foo(params);
}
Это не представляется возможным объединить эти две строки иначе в foo({1, 2, 3})
как вы написали.
Или вы могли бы написать так:
public static void main(String args[]) {
foo(new int[]{1, 2, 3});
}
Синтаксис int...
я писал в первой версии называется «» переменные аргументы, , если вы хотите узнать больше об этом. Поскольку вы новичок, я не рекомендую использовать его, , так как вы можете столкнуться с некоторыми подводными камнями, и может быть более запутанным, чем полезным. Придерживайтесь второй или третьей версии на данный момент.
Вы должны объявить новый массив. Вам не нужно назначать его переменной. –
Это похоже на работу. Глупый я не пробовал foo (новый int [] {1, 2, 3}); –