sar*_*sar 5 java overloading ambiguity
我试图编译以下代码但是出错了
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 '
}
Run Code Online (Sandbox Code Playgroud)
我不知道为什么它含糊不清.意味着如果我传递一个int值它应该自动框并test(Integer..x)应该被调用..类似的行test(long..x )应该被调用..这是我的理解..有人可以解释为什么它是模棱两可的?
int参数与您的任一定义都不匹配 - 一个定义为,long另一个定义为,Integer因此由编译器决定。投射到long与拳击到同等有效Integer
http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.12.2
| 归档时间: |
|
| 查看次数: |
355 次 |
| 最近记录: |