重载 varargs 数组,选择方法
我有两个重载方法:和foo
bar
//Object[]... vs Integer[]...
public static String foo(Object[]... args) { return "Object[] args"; }
public static String foo(Integer[]... args) { return "Integer[] args";}
//Object... vs Integer[]...
public static String bar(Object... args) {return "Object args";}
public static String bar(Integer[]... args) {return "Integer[] args";}
现在,当我像这样使用它们时:
Integer[] i = { 5 };
System.out.println(foo(i));//Object[]... vs Integer[]...
System.out.println(bar(i));//Object... vs Integer[]...
我得到
Integer[] args
Object args
问题是:为什么我们有2个不同的输出?
可以隐式转换为 、 和 。Integer[]
Object
Object[]