【发布时间】:2015-10-16 02:41:51
【问题描述】:
我对 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;
}
【问题讨论】:
-
有趣的问题。
-
您可能会找到问题的答案here。
标签: java methods overloading variadic-functions