【发布时间】:2013-02-11 17:35:47
【问题描述】:
为什么这个声明在编译时不被认为是模棱两可的?
void f(int a) {
System.out.println("int");
}
void f(int... a) {
System.out.println("int...");
}
例如:
f(2); // to one parameter both method should match (f(int) runs)
f(2,2); // f(int...)
【问题讨论】:
-
我现在没有时间找到它,但我敢打赌答案在 JLS section 15.12.2 的某个地方。
-
好吧,如果编译器可以找到调用的完全匹配,它会去那个,而不是 var-args 甚至装箱。
标签: java