对象vararg和int vararg编译错误

时间:2016-09-28 11:49:42

标签: java variadic-functions

为什么以下代码会出现编译错误"方法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

1 个答案:

答案 0 :(得分:1)

您应首先阅读this,然后在show方法中传递一个int数组而不是3个int。

这里发生的事情是Java编译器自动将int装入Integer类,因为Integer类是Object类的子类,所以show()方法的两个版本都可以接受show(int []),因此编译器会抛出模糊错误。