0

我正在尝试转换其中VectorObjects一个toString()使用方法

(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 回答