2

だから私が次のものを持っていると想像してください:myListタイプのArrayList<CustomType>そしてそれを配列に変換したいのですが、これについてはどうすればいいですか?

私が試してみました

CustomType[] myArr = (CustomType)myList.toArray();

このコンパイルは問題ありませんが、実行時にキャスト例外が発生します。私の現在の解決策は、ArrayListを繰り返し処理し、各エントリを配列に書き込むことですが、良くありません。

何か案が?ありがとう。

4

4 に答える 4

4

タイプをとるtoArrayのバージョンがあります

toArray(T [] a)

だからあなたはするでしょう:

myList.toArray(new CompositeType[myList.size()]);
于 2012-10-08T17:10:15.770 に答える
1

myList.toArray(new CustomType [myList.size]);

于 2012-10-08T17:11:31.537 に答える
0

myArrはCustomTypeの配列であり、CustomTypeオブジェクトをCustomTypeArrayオブジェクトにキャストすることはできません。これを行う:

CustomType[] myArr = (CustomType[])myList.toArray();
于 2012-10-08T17:26:53.823 に答える
0

引数を渡さないtoArray()メソッドはObject[]を返します。したがって、配列を引数として渡す必要があります。この配列には、リストのデータが入力され、返されます。空の配列を渡すこともできますが、目的のサイズの配列を渡すこともできます。

CustomType [] array = myList.toArray(new CustomType [list.size()]);

于 2012-10-08T17:09:46.520 に答える