Programación General > Java
No entiendo este error!
digichap28:
Hola q tal?
Bueno, acabo de iniciar con colecciones y a la hora de programar algo que parece ser sencillo me ha causado problemas.
He invstigado por la red y no logro solucionarlo, por eso acudo a ustedes a ver si me logran dar una manito.
A continuacion uno de los metodos realizados y el problema.
--- Citar ---public int mayorDato(int i){
if(i==datos.size()-1){
int m=(Integer) datos.elementAt(i); ----> Aqui el problema, al parecer no esta bn aplicado el cast para Vector.
return m;
}else{
int mayor=mayorDato(i+1);
int m=(Integer) datos.elementAt(i); ----> Aqui lo mismo.
if(mayor>m){
return mayor;
}else{
return m;
}
}
}
--- Fin de la cita ---
Cabe decir que a la hora de compilarlo, aparece todo correcto.
Esta es la exception enviada luego de ponerlo a correr: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
Gracias!
shadow_rev:
Si lo único que guardas en el vector son Strings (supongo que lo llenas con un campo de texto en un applet, o directamente en la línea de comandos), deberías utilizar Integer.parseInt() en vez de hacer el cast:
--- Código: Java ---int m = Integer.parseInt(datos.elementAt(i));
Advertido, sólo funciona si el vector se llena con strings que representan números ("10", "45", etc.). Espero que te ayude en algo.
:suerte:
digichap28:
el Vector lo lleno con este metodo.
public void agregarDatos(){
datos.addElement(JOptionPane.showInputDialog("Digite el dato a insertar."));
}
El problema continua, no logro solucionarlo.
Ayuda! :hitcomp:
silverfox:
Hola.
Si miras en el API de JAVA:
public static String showInputDialog(Object message)
Estás rellenando el Vector con Strings, así que es normal que no te haga el cast a Integer.
Echa un vistazo al API de Integer:
public static Integer decode(String nm) throws NumberFormatException
Esto resuelve tu problema.
Suerte.
Silverfox
digichap28:
Listo!
Solucionado de esta manera:
--- Código: Java ---public void agregarDatos(){ datos.addElement(Integer.parseInt(JOptionPane.showInputDialog("Digite el dato a insertar."))); }
Muchas gracias por la ayuda!
:D Saludos.
Navegación
[#] Página Siguiente
Ir a la versión completa