将对象数组转换为自定义类数组

时间:2011-11-05 06:27:37

标签: java arrays object



我创建了一个派生自Object的类,我有一个对象数组 如何将对象数组转换为我的类数组

public class CastArray{

public CastArray(){
}

public long toLong(){
    return Long.parseLong(this.toString());
}    

public double toDouble(){
    return Double.parseDouble(this.toString());
}

public int toInteger(){
    return Integer.parseInt(this.toString());
}
}<br />

返回错误:
    java.lang.ClassCastException:[Ljava.lang.Object;不能投[LBasic.CastArray;

3 个答案:

答案 0 :(得分:3)

问题有点模糊,但让我试着回答它。如果对象数组实际上是您的类的数组,则可以直接转换为数组,例如A[] a = (A[]) objArray;。或者,如果您知道每个元素都可以强制转换为您的类(是您的类的实例或其子类的一个实例),您可以通过创建一个新数组并将每个元素添加到您的类中来进行克隆。 e.g:

A[] a = new A[objArray.length];
int i = 0;
for (Object o : objArray) {
   a[i++] = (A) o;
}

答案 1 :(得分:1)

听起来你问的是如何做到这一点:

Object [] objectArray = {};

CastArray castArray =(CastArray)objectArray;

如果是这种情况你就不能。

答案 2 :(得分:1)

Arrays.copyOf(...)可能是您的解决方案。

祝你好运!