这是一段代码片段。为什么编译器给出了一个有害的方法调用错误?
class BoxVar{
static void call(Integer... i){
System.out.println("hi"+i);
}
static void call(int... i){
System.out.println("hello"+i);
}
public static void main(String... args){
call(10);
}
}
程序编译得很好。当我运行该程序,它给了我
的java:参考调用是模糊的,在com.exams.BoxVar两个方法 调用(java.lang.Integer中...)和方法调用(INT .. ) in com.exams.BoxVar match
有人可以解释我的原因吗?
最重要的是,我试着将第一种方法转换成这样的东西。
static void call(Long... i){
System.out.println("hi"+i);
}
它运行良好。有人可以帮我解决这个问题吗?谢谢。
这是因为你输入的是整数,一个只是包装,而另一个是实际的类 – DreadHeadedDeveloper 2014-10-26 20:27:56