Programación General > Java

 No entiendo este error!

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa