1

クラスがあります

public class ABC {
    public int i;
    public float f;

    public ABC(int d1,float d2) {
        i=d1;
        f=d2;
    }
}

ABC object の ArrayList を作成しました。

    ArrayList<ABC> list = new ArrayList<ABC>();
    ABC abc1=new ABC(1,1.0f);
    ABC abc2=new ABC(2,2.0f);
    list.add(abc1);
    list.add(abc2);

メソッドでArrayList を配列に変換したいのですtoArray()が、このメソッドは を返しますObject[];

これで、要素をObject[]1 つずつ ABC 型オブジェクトに型キャストしてABC[];

しかし、1 つのコマンドで Object[] を ABC[] に型キャストする他の方法はありますか? このようなもの

    ABC[] array=(ABC[])list.toArray();

このコマンドはこの例外をスローしますが

スレッド「メイン」での例外 java.lang.ClassCastException: [Ljava.lang.Object; [LABC;** にキャストできません

任意のヘルプ

4

2 に答える 2

4

Listインターフェイスには、ジェネリックに型指定された配列を返すメソッドがあるため、 ArrayListtoArrayを実行できます。use's implementation of that

ABC[] array = new ABC [list.size()]
array = list.toArray(array);
于 2013-02-18T17:46:26.467 に答える
0

toArray() ドキュメント

ABC[] array = list.toArray(new ABC[list.size()])
于 2013-02-18T17:48:20.173 に答える