【发布时间】:2014-04-29 20:33:26
【问题描述】:
我尝试编译以下代码但出现错误
static void test(long... x)
{
System.out.println("long...");
}
static void test(Integer... x)
{
System.out.println("Integer...");
}
public static void main(String [] args) {
int no=5;
test(no,no);//getting error at this point in eclipse 'The method test(long[]) is ambiguous '
}
我不知道为什么它是模棱两可的。意味着如果我传递一个int 值,它应该自动装箱,test(Integer..x) 应该被调用..在类似的行test(long..x ) 应该被调用..这是我的理解..有人可以解释一下为什么它是模棱两可的?
【问题讨论】:
-
您使用的 JDK 版本是什么?如果你从命令行编译它会发生什么?请检查您是否被此咬伤:stackoverflow.com/a/7689819/2231632
标签: java overloading ambiguity