为什么以下代码会出现编译错误"方法show(Object [])对于类型VarArgs"?来说是不明确的。
行显示错误(10,20,30);
public class VarArgs {
public static void main(String[] args) {
show(10,20,30);
}
private static void show(Object... args){
System.out.println("Object");
}
private static void show(int... arry){
System.out.println("Integer");
}
}
JDK:jdk1.6.0_23
答案 0 :(得分:1)
您应首先阅读this,然后在show方法中传递一个int数组而不是3个int。
这里发生的事情是Java编译器自动将int装入Integer类,因为Integer类是Object类的子类,所以show()方法的两个版本都可以接受show(int []),因此编译器会抛出模糊错误。