情况1
static void call(Integer i) {
System.out.println("hi" + i);
}
static void call(int i) {
System.out.println("hello" + i);
}
public static void main(String... args) {
call(10);
}
案例 1 的输出:hello10
案例2
static void call(Integer... i) {
System.out.println("hi" + i);
}
static void call(int... i) {
System.out.println("hello" + i);
}
public static void main(String... args) {
call(10);
}
显示编译错误reference to call ambiguous
。但是,我无法理解。为什么 ?但是,当我从 中注释掉任何call()
方法时Case 2
,它工作正常。谁能帮我理解,这里发生了什么?