public static void main(String[] a){
VarArgs obj = new VarArgs();
obj.add(1,2);
}
class VarArgs{
int add(int size, Integer... params){
}
}
此代码有效。但我认为它会产生歧义错误。由于类型转换。
它是如何工作的?
最佳答案
reference to call ambiguous
错误发生在两个方法同样适用时;事实上,修复该错误的一种常见方法是删除这两种方法中的一种。 (参见 Compiler error : reference to call ambiguous。)
在你的例子中,只有一种方法可以开始,所以没有歧义:2
简单地自动装箱到 Integer.valueOf(2)
中,然后进入 new Integer[] { Integer.valueOf(2) }
.
关于java - 不是歧义错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37465202/