Chamada ambígua Java de Varargs

Estou um pouco confuso sobre Javavarargs métodos:

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

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

Quando tentei invocarsum() sem passar nenhum argumento, então oint A versão do método foi invocada. Não entendo o porquê; normalmente o compilador deve gerar um erro.

Por outro lado, o seguinte trecho de código gera um erro do compilador quando tento chamarsum sem nenhum argumento:

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

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

questionAnswers(2)

yourAnswerToTheQuestion