繁体   English   中英

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

[英]Cast Object array to Custom Class array



我创建了一个派生自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;

这个问题有点含糊,但让我尝试回答。 如果对象数组实际上是您的类的数组,则可以直接转换为您的数组,例如A[] a = (A[]) objArray; 另外,如果您知道每个元素都可以转换为您的类(是您的类的实例或它的子类之一),则可以通过创建一个新数组并将每个带有转换的元素添加到类中来克隆它。 例如:

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

听起来您正在询问如何执行此操作:

Object [] objectArray = {};

CastArray castArray =(CastArray)objectArray;

如果是这种情况,您就不能。

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

最好的祝福!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM