0

私はを使用するメソッドを持っているVectorのを変換しようとしていますObjectstoString()

(String[]) mObjectVector.toArray(new String[mObjectVector.size()])

また

(String[]) mObjectVector.toArray(new Object[mObjectVector.size()])

ただし、次のエラーが発生します。

java.lang.ArrayStoreException: source[0] of type .../myObjectType; cannot be stored in destination array of type [Ljava/lang/String;

java.lang.ClassCastException: [Ljava.lang.Object;

なにが問題ですか?

4

2 に答える 2

3

オブジェクトをそのオブジェクトtoStringメソッドの戻り型にキャストすることはできません。Vectorを呼び出している間、オブジェクトを反復処理して新しい配列を作成する必要がありますtoString

String[] stringArray = new String[mObjectVector.size()];
for (int i=0; i < mObjectVector.size(); i++) {
   stringArray[i] = mObjectVector.get(i).toString();
}
于 2012-09-29T21:06:12.417 に答える
0

ベクトルにカスタムオブジェクトがあるため、ここではtoArrayを実行できないと思います。

ベクトルを手動でループし、オブジェクトでtoString()を呼び出して、文字列配列に設定する必要があります。

于 2012-09-29T21:02:34.340 に答える