Foros del Web » Programación para mayores de 30 ;) » Java »

java.lang.ClassCastException

Estas en el tema de java.lang.ClassCastException en el foro de Java en Foros del Web. Por fis chavos..ayudenme!!! Lo que pasa es k tengo dos combos, el primero tiene "Años", y segun el año k elijen se tiene que cargar ...
  #1 (permalink)  
Antiguo 19/05/2006, 15:39
Avatar de OlaIsa  
Fecha de Ingreso: diciembre-2005
Mensajes: 105
Antigüedad: 18 años, 5 meses
Puntos: 0
java.lang.ClassCastException

Por fis chavos..ayudenme!!!

Lo que pasa es k tengo dos combos, el primero tiene "Años", y segun el año k elijen se tiene que cargar determinados numeros de "Facturas", bien, entonces lleno el primer combo, ya lleno, realizo otra consulta para traer en base a ese combo(año), las "Facturas":

Código:
<%	
		ArrayList vConsultaYear= new ArrayList();	//antes Vector
		System.out.println("El año seleccionado es:" +year);
					vConsultaYear=objCotidianos.consultaIndvYear(year);
			System.out.println("Trae el arreglo con facturas del año");
		
%>
Si realiza esto, oero al momento que inicio a llenar el combo de las facturas me manda este error:

[Error de servlet]-[java.lang.String]: java.lang.ClassCastException: java.lang.String

Y ni siquiera se lo k significa!!!! no me marca el numero de linea ni nada...!!!!

, porfis ayudenme..
__________________
Se feliz!!!!!
  #2 (permalink)  
Antiguo 19/05/2006, 15:50
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Hola:
Ese error se debe en que en algún sitio estás intentando convertir una clase de un tipo a otro tipo distinto. Por ejemplo, esto te lanzaría esa excepción

Object fecha = new Date();
Integer numero = (Integer)fecha; // Aquí salta la excpción. fecha NO es un Integer.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 22/05/2006, 08:57
Avatar de OlaIsa  
Fecha de Ingreso: diciembre-2005
Mensajes: 105
Antigüedad: 18 años, 5 meses
Puntos: 0
mmm...OK muchas gracias...creo k tengo un poco de confusión en mi codigo...por eso de los ArrayList y el Vector...no se pueden usar indistintamente????, lo k pasa es k en ocasiones asigno un vector a un array o al reves

OK, despues de llenar el primer combo, tengo el seguiente codigo para traer los datos que debe contener el segundo:

Cita:
ArrayList vConsultaYear=new arrayList();
vConsultaYear=objCotidianos.consultaIndvYear(year) ; //mando como parametro el año, para k seleccione segun el año, a las facturas
Esto si lo hace, pero cuando intento llenar el combo con los datos k trae es donde creo esta el erro:

Cita:
String idfactura="";
for (int contFac=0; contFac<vConsultaYEar.size(); contMemo++)
Vector vFacturas=new Vector();
vFacturas=(Vector) vConsultaYear.get(contFac);
idfactura=VFacturas.get(0).toString().trim();
Bueno es parte del codigo...gracias a todos
__________________
Se feliz!!!!!
  #4 (permalink)  
Antiguo 22/05/2006, 14:41
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Hola:

Tienes una línea que pone

vFacturas=(Vector) vConsultaYear.get(contFac);

Por lo que veo en el código vConsultaYear es un ArrayList. Eso vale. Cuando haces el get(), ¿qué objeto habías metido previamente?. Si es un Vector, estupendo. Si no, ahí tienes el problema.

Otra cosa, este tipo de cosas

ArrayList vConsultaYear=new arrayList();
vConsultaYear=objCotidianos.consultaIndvYear(year)

son innecesarias. La segunda línea asigna un objeto a vConsultaYear, por lo que el new que hay delante no sirve para nada, sólo consumir tiempo.

Idem con el vFacturas, pero ahí es más grave, puesto que lo haces dentro de un bucle

Código:
for (int contFac=0; contFac<vConsultaYEar.size(); contMemo++)
   Vector vFacturas=new Vector();
para finalmente asignar un valor

vFacturas=(Vector) vConsultaYear.get(contFac);

Se bueno.
__________________
Apuntes Java
Wiki de Programación
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:17.