Datos del Tema
Creado el 27.08.07 a las 10:47
- 0 Votos
-
0
Favoritos - 637
Visitas - 1
Mensajes
¡Tema agregado a Favoritos!
Ya tienes este tema en Favoritos
Error
¡Buen Tema!0 Votos Disponibles
¡Tu voto ha sido enviado!
Ya has votado por este tema
[Error]
No puedes votar tu propio tema
No puedes votar a usuarios baneados
No puedes votar en un tema cerrado
Temas Relacionados
| Nesecito ayuda amigos programadores.. La cuestion s esta... Tengo un iterador q reccore un ArraIlist de Telefonos celulares y fijos.. osea la clase celulares y fijo .. heredan de telefon las basicas y de ahi se dividen... el problema se da cuando... tengo q contar cuantos telefonos celulares tengo en el ArrayList este es el codigo q precariamente se me ocurrio public int cantCel() { int con = 0; Celular cel = new Celular(); Iterator i = tel.iterator(); while(i.hasNext()) { cel = (Celular)i.next(); ------------------- if(cel.reto()) con++; } return con; } el wacho anda pero solo si son celulares los q cargo.. si meto un fijo en algun momento de la carga de datos.. a la hora de ejecutar la cuenta da una execpcion por q como ven ahi a la variable cel q es de tipo Celular si el iteador se encuentra con un objeto Fijo causa error al forzar a q se combierta en un tipo cel.. Pregunta: Como puedo hacer para diferenciar si un iterador esta apuntando a un objeto tipo Celular o Fijo? osea, preguntar si es Fijo no hace nada, si es Celular q mande el contador Nota: el metodo cel.reto() solamente manda true para q pase el if pero obiamente esta mal tambien espero q alguien me pueda responder ^^ Salutes!! | ||
| Bueno no entiendo muy bien como incializas el iterador... Igual para saber si un determinado objeto es instancia de una determinada clase tenes que utilizar el operador instanceof : por ej Object obj=i.next(); if (obj instanceof Celular) cel++; (fijate que cuando accedo al elemento del iterador no haga casting; si lo hiciera estaria en el mismo problema) Supongo que el iteraodor te retorna sintacticamete un Object; si despues queres hacer un casting a una determinada clase tenes que asegurarte antes de que este casting no te tire un error: Object obj=i.next(); Celular c; if (obj instanceof Celular) c=(Celular) obj ;// ESTE CASTING ES SEGURO, NUNCA TE PUEDE TIRAR UN ERROR else //aca lo manejar vos, pero seguro que a obj no lo vas a poder tratar como celular si no haces el test antes te puede tirar un error dependiendo del clase real del objeto. Bueno, fijate en la documentacion de instanceof para estar mas seguro porque yo hace rato que no toco una linea de java (tambien hay otras operadores o funciones para testear si una determinada clase es superclase/subclase de otra y cosas asi; la clase de cualquier objeto se obtiene con el metodo getclass o algo asi; como ves no me acuerdo mucho los detalles ) | ||
| Herramientas | Buscar en este tema |
| |



)