Как исправить эту ошибку сборки VarArgs? - PullRequest
0 голосов
/ 26 апреля 2018

Вот основной метод:

package main;

import varArgs.VarArgs;

public class Main {

    public static void main(String[] args) {
        int answer;

        answer = VarArgs.sum(new int[]{1,2,3});
        System.out.println("sum of ints = " + answer);

        answer = VarArgs.sum(new int[]{1,2,3}, new int[] {100, 200, 300});
        System.out.println("sum of ints = " + answer);

    }
}

Вот метод var args:

package varArgs;

    public class VarArgs {
        /***
         * Add an array of integers
         * @param numbers Some array of integers
         * @return The sum of all the elements in num
         */
        public static int sum(int... numbers) {
            int result = 0;
            for (int i : numbers) {
                result += i;
            }
            return result;
        }   
    }

Вот ошибка, которую я получаю: Error

1 Ответ

0 голосов
/ 26 апреля 2018

Параметр varargs может принимать только один массив. Если вы хотите передать переменное количество массивов, вам нужно сделать это:

public static int sum(int[]... arrays) {
    int sum = 0;
    for (int[] numbers : arrays) {
        for (int i : numbers) {
            sum += i;
        }
    }
    return sum;
}
...