对于单参数方法,Java会调用 int参数方法,但是如果var args方法给出歧义错误,为什么?
public class Test{
public static void main(String[] args) {
name(1);
name(55);
}
public static void name(Integer i) {
System.out.println("Integer method");
}
public static void name(int s) {
System.out.println("int method");
}
}
输出为
int method
int method
但如果使用以下程序
public class Test{
public static void main(String[] args) {
name(1,55);
name(55,66);
}
public static void name(Integer... i) {
System.out.println("var args Integer method");
}
public static void name(int... s) {
System.out.println("var args int method");
}
}
给出了歧义错误。为什么是因为?