1

ArrayList からキャストして int 配列を返すメソッドを作成する必要があります。これが私のコードです:

public int[] getDestSets()
{
    int[] array = new int[destSet.size()];
    destSet.toArray(array);
    return array;
}

destSet は整数の ArrayList です。「ArrayList 型のメソッド toArray(T[]) は、引数 (int[]) には適用できません」というエラーが表示されました。誰でも私にヒントを与えることができますか?ありがとう!

4

3 に答える 3

1

int[] 配列を Integer[] 配列に「ボックス化」することはできません。for ループを使用する必要があります。Java Generics がプリミティブ型をサポートしないのはなぜですか?を参照してください。詳細については。

于 2013-07-21T23:15:20.490 に答える
1

Apache Commons Lang ライブラリの ArrayUtils クラスの使用を試すことができます。2 つの手順が必要になります。まず、ArrayList をラッパー オブジェクト配列 (Integer[]) に変換します。その後、ArrayUtils.toPrimitive() を使用して int の配列 (int[]) に変換できます。

于 2013-07-22T01:03:01.247 に答える
1

ラッパー クラス Integer は int プリミティブに自動アンボックス化されますが、配列/リストは int の配列に自動アンボックス化されません。

あなたは難しい方法でそれをしなければなりません:

public int[] getDestSets() {
    int[] array = new int[destSet.size()];
    int x = 0;
    for (Integer i : destSet)
       array[x++] = i;
    return array;
}
于 2013-07-21T23:28:34.920 に答える