Привести массив объектов в массив пользовательских классов - PullRequest
0 голосов
/ 05 ноября 2011

Я создал класс, производный от 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 ]

3 голосов
/ 05 ноября 2011

Вопрос немного расплывчатый, но позвольте мне попытаться ответить на него.если массив объектов на самом деле является массивом вашего класса, вы можете выполнить непосредственное приведение к вашему массиву, например A[] a = (A[]) objArray;.В качестве альтернативы, если вы знаете, что каждый элемент может быть приведен к вашему классу (является экземпляром вашего класса или одного из его подклассов), вы можете клонировать его, создав новый массив и добавив каждый элемент с приведением к вашему классу.например:

A[] a = new A[objArray.length];
int i = 0;
for (Object o : objArray) {
   a[i++] = (A) o;
}
1 голос
/ 05 ноября 2011

Arrays.copyOf (...) может быть решением для вас.

С наилучшими пожеланиями!

1 голос
/ 05 ноября 2011

Звучит так, будто вы спрашиваете, как это сделать:

Object [] objectArray = {};

CastArray castArray = (CastArray) objectArray;

Еслиэто тот случай, когда ты не можешь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...