java - 不是歧义错误吗?

标签 java

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/

相关文章:

Java - JNA 和共享库,在 Linux 上从 .jar 启动时出现 UnsatisfiedLinkError

java - 信任 SSL 证书 : how does Commons HTTP client trust more than standard Java?

java - 如何避免线程中的超时异常?

java - JSF2 : Submit AJAX form

java - 如何在java中从一组大小为n的集合中迭代生成k个元素子集?

java - (线程新手)构建即时消息应用程序的最佳方式?

java - 需要批评者 : store objects inside arrays

java 键盘快捷键捕获对话框

java - 如何在没有初始化的情况下将图像转换为 BufferedImage?

java - 错误下ThreadDeath的使用