Hola, qué tal? Tengo en una variable de tipo Object, un array de chars. Lo que necesito es transformarlo a array de chars para recorrelo. Cómo debo/puedo transformarlo? Gracias.
Te mando el código. El problema lo tengo cuando quiero imprimir el array de chars. Gracias. import java.util.*; public class MyVector extends Vector { public MyVector() { super(1,1); } public void agregarElemento(int i) { addElement(new Integer(i)); } public void agregarElemento(float f) { addElement(new Float(f)); } public void agregarElemento(String s) { addElement(s); } public void agregarElemento(char[] a) { addElement(a); } public static void main(String[] args) { MyVector v = new MyVector(); v.agregarElemento(4); v.agregarElemento(4.5f); v.agregarElemento("Juanes"); char c[] = {'a','b','c'}; v.agregarElemento(c); v.printVector(); } public void printVector() { Object o; for(int i=0; i<this.size(); i++) { o = elementAt(i); if(o instanceof char[]) { printArray(o.toCharArray()); } else System.out.println(o); } } public void printArray(char[] c) { //System.out.println(o.size()); } }
Prueba como sigue, al final una rray de char es un string :) import java.util.*; public class MyVector extends Vector { static int INT = 1; static int FLOAT = 2; static int STRING = 3; static int CHAR = 4; public MyVector() { super(1,1); } public void agregarElemento(int i) { addElement(new Dato(new Integer(i),INT)); } public void agregarElemento(float f) { addElement(new Dato(new Float(f),FLOAT)); } public void agregarElemento(String s) { addElement(new Dato(s,STRING)); } public void agregarElemento(char[] a) { addElement(new Dato(new String(a),CHAR)); } public static void main(String[] args) { MyVector v = new MyVector(); v.agregarElemento(4); v.agregarElemento(4.5f); v.agregarElemento("Juanes"); char c[] = {'a','b','c'}; v.agregarElemento(c); v.printVector(); } public void printVector() { Dato o; for(int i=0; i<this.size(); i++) { o = (Dato)this.elementAt(i); int tipo = o.tipo; switch(tipo) { case 1: //INT System.out.println(o.valor); break; case 2: //FLOAT System.out.println(o.valor); break; case 3: //STRING System.out.println(o.valor); break; case 4: //CHAR String valores = (String)o.valor; for (int j=0; j < valores.length(); j++) { System.out.print(valores.charAt(j)+","); } } } } public void printArray(char[] c) { //System.out.println(o.size()); } class Dato { Object valor; int tipo; public Dato(Object valor, int tipo) { this.valor = valor; this.tipo = tipo; } } }