Я немного запутался в методах Java varargs:
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;
}