将数组传递给带有数组参数的方法和java中的var-args有什么区别?

时间:2016-07-09 11:29:29

标签: java arrays overloading method-call

我已经阅读了关于java中var-args的注释。我想知道在调用方法时它与数组参数的区别是什么。

public void doSomething(int[] a){
   // some logic here
}   
public void doSometing(int... a){
  // some logic here
}

上述两种方法由

调用
int[] x={1,2,3,4,5};
doSomething(x);

它们是相同还是存在一些差异?

是否可以重载这两种方法?

1 个答案:

答案 0 :(得分:2)

这两个方法签名是相同的,它们不允许重载。

唯一的区别是允许使用vararg签名调用doSomething(1, 2, 3),而使用数组签名调用相同会导致错误。