Varargs Java Ambiguous Call
我对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;
}