2017-07-15 5 views
-1

私がしようとしていた:システムcopyarrayは適用できませんobject - > int []?

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[]何かをコピーするために必ずそのOKでしたか?

+3

実際の引数リストと仮引数リストの長さは異なります。 –

答えて

1

あなただけメソッドへの最後の引数が欠落している、here'sのjavadoc、これはそれが引数aoutで言っていることです:

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

引数を逃している議論したように。しかし、配列全体をコピーしているので、より単純なメソッドを使うこともできます。

int[] newArr = data.clone(); 
関連する問題