#java #arrays
#java #массивы
Вопрос:
есть ли в java возможность подсчитать количество переданных аргументов в метод?
Получилось что-то вроде этого:
public class practise7 {
public static void main(String[] args) {
int[] array3 = new int[]{1};
int[] array4 = new int[]{1, 3, 4};
int[] array5 = new int[]{2, 3,};
combine(array3, array4, array5);
}
public static void combine(int[] array3, int[] array4, int[] array5) {
//Here i need the number of passed arguments (here 3 e.g.)
int count = args.length; //found this on google but didn't worked
System.out.println(count);
}
}
Большое спасибо!
Ответ №1:
Попробуйте это. Он использует синтаксис var …arg .
public static void main(String[] args) {
int[] array3 = new int[]{1};
int[] array4 = new int[]{1, 3, 4};
int[] array5 = new int[]{2, 3,};
combine(array3, array4, array5);
}
// uses the variable arguments syntax
public static void combine(int[]...v) {
//Here i need the number of passed arguments (here 3 e.g.)
int count = v.length;
System.out.println(count);
for (int[] k : v) {
System.out.println(Arrays.toString(k));
}
}
}
С принтами
3
[1]
[1, 3, 4]
[2, 3]
Обратите внимание, что объединение массивов и не массивов в списке аргументов иногда может привести к неожиданным результатам. Аргумент синтаксиса переменной должен быть последним в подписи.
Комментарии:
1. Сработало — большое спасибо!
Ответ №2:
Ваше решение не работает, потому что с ‘аргументами.длина’ вы можете получить только количество аргументов, которые были переданы в основной функции. Вы можете использовать функцию Java с переменными аргументами следующим образом:
public static void combine(int[] ... arrays)
{
int count = arrays.length;
System.out.println(count);
}