Параметры переменной функции Java - PullRequest
4 голосов
/ 30 марта 2010

Как вы дублируете эту функцию в Java?

В C # вы можете использовать ключевое слово params для указания списков переменных параметров для функций.

Как вы это делаете на Java?

Или вам приходится прибегать к множественным перегрузкам?

Ответы [ 4 ]

9 голосов
/ 30 марта 2010

C # код:

double Average(params double[] nums) {
  var sum = 0.0;
  foreach(var num in nums) 
    sum += num;
  return sum / nums.Length;
}

Эквивалентный код Java:

double average(double... nums) {
  double sum = 0.0;
  for(double num : nums) 
    sum += num;
  return sum / nums.length;
}

Эта функция называется varargs. Подробнее об этом можно прочитать здесь .

3 голосов
/ 30 марта 2010

Параметры для переменных функций (" varargs " на языке Java) отображаются в теле функции Java в виде массива. Пример из записи в Википедии прекрасно иллюстрирует это:

public static void printSpaced(Object... objects) {
   for (Object o : objects)
     System.out.print(o + " ");
 }

 // Can be used to print:
 printSpaced(1, 2, "three");
2 голосов
/ 30 марта 2010

Вы можете использовать .... Например:

public void foo(int... args) {
  for (int arg : args) {
    // do something
  }
}
0 голосов
/ 30 марта 2010

В Java вы можете использовать varargs . Но это работает только для 1.5 или более новых версий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...