Hacer casting a una variable con un objeto tipo Class

eldrum
23 de Febrero del 2004
Necesito hacer un casting de un tipo array de Object a su tipo original. Mi problema es que no conozco el tipo original para poder hacer un (String[])array, si no que recupero el tipo original en un objeto de tipo Class.

Agradeceria cualquier respuesta, y un memo al mail si contenstan

Heihachi
23 de Febrero del 2004
Si tienes controlados los posibles tipos que puede tomar la variable puedes hacer algo como:

Object o;
//...
if (o instanceof String[]){
String[] s=(String[])o;
//...
}else if (o instanceof Integer){
Integer i=(Integer)o;
//...
}

Si lo que tienes son diferentes clases con métodos comunes define una interface con estos métodos, que tus clases la implementen, y haz el casting a esta interface

Y si así no es suficiente puedes echarle una ojeada al package java.lang.reflect

Saludos!

eldrum
23 de Febrero del 2004
Gracias por tu comentario:
No tengo controlado el tipo de los datos, pero ya encontre el fallo, y estaba no en el punto de hacer el casting, si no antes, a la hora de crear el array.
En lugar de usar un Object[] he usado la clase de reflect para arrays, y todo bien.