Varargs Java неоднозначный вызов

Я немного запутался в Javaпеременные аргументы методы:

public static int sum(int ...a) {
    return 0;
}

public static double sum(double ...a) {
    return 0.0;
}

Когда я пытался вызватьsum() без каких-либо аргументов, тоint версия метода была вызвана. Я не понимаю почему; обычно компилятор должен выдавать ошибку.

Напротив, следующий фрагмент кода генерирует ошибку компилятора, когда я пытаюсь вызватьsum без каких-либо аргументов:

public static int sum(int ...a) {
    return 0;
}

public static boolean sum(boolean ...a) {
    return true;
}

Ответы на вопрос(2)

Ваш ответ на вопрос