系统copyarray无法应用对象 - > INT []?

时间:2017-07-15 09:33:59

标签: java arrays

我在尝试:

private int[] data = new int[1];
int[] newArr = new int[1];
System.arraycopy(data, 0, newArr, data.length);

但我得到了:

error: method arraycopy in class System cannot be applied to given types;
                System.arraycopy(data, 0, newArr, data.length);
                      ^
  required: Object,int,Object,int,int
  found: int[],int,int[],int
  reason: actual and formal argument lists differ in length
1 error

Compilation Failed

我确信可以复制int[]我做错的任何事情吗?

2 个答案:

答案 0 :(得分:1)

你只是错过了该方法的最后一个参数,here's javadoc,这就是它所说的参数:

  

src - 源数组。

     

srcPos - 源数组中的起始位置。

     

dest - 目标数组。

     

destPos - 目标数据中的起始位置。

     

length - 要复制的数组元素的数量。

下面应该有效:

int[] data = new int[1];
int[] newArr = new int[1];
System.arraycopy(data, 0, newArr, 0, data.length);
System.out.println(Arrays.toString(newArr));

答案 1 :(得分:1)

如上所述,你错过了一个论点。但是既然你要复制整个数组,你也可以使用更简单的方法:

int[] newArr = data.clone();