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

[SOLUCIONADO] comprobacion de tipos

Estas en el tema de comprobacion de tipos en el foro de Java en Foros del Web. la comprobacion de tipos es lo q hace el compilador para verificar q no haya incompatibilidades con los datos? por ejemplo si hago int x ...
  #1 (permalink)  
Antiguo 30/10/2013, 11:42
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
comprobacion de tipos

la comprobacion de tipos es lo q hace el compilador para verificar q no haya incompatibilidades con los datos?
por ejemplo si hago int x = "asdas"; lo detecta mientras compila la comprobacion de tipos? o tiene alguna otra funcion?
  #2 (permalink)  
Antiguo 30/10/2013, 13:07
 
Fecha de Ingreso: noviembre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: comprobacion de tipos

La comprobación de tipos es unos de los chequeos que se realizan en el tiempo de compilación dentro de lo que llamaría el chequeo de sintaxis por decirlo de alguna manera,
Código Java:
Ver original
  1. int x = "cadena";
en este caso, tanto el IDE que utilices como la compilación detectarán el fallo en la sintaxis.

También podrías tener problemas con "los tipos de datos" en tiempo de ejecución, sobre todo cuando utilizas los conceptos de abstracción, interfaz o herencia, donde para el compilador sintacticamente hablando será correcto pero en tiempo de ejecución será incorrecto.

Intentare explicarme: Imaginemos que tenemos una interfaz Vehiculo, y tenemos dos clases que la implementan, la clase Coche y la clase Camion.

Código Java:
Ver original
  1. /**
  2.      * Pinta por pantalla los datos del vehiculo
  3.      *
  4.      * @param iVehiculo (Puede ser por ejemplo un objeto Coche o un objeto Camion)
  5.      */
  6.     void obtenerDatosVehiculo(final Vehiculo iVehiculo) {
  7.  
  8.         Coche objCoche = (Coche) iVehiculo;
  9.         Logger.getLogger(CastObject.CLASE).log(Level.INFO, objCoche.toString());
  10.     }

En el código se puede ver como en ese método podemos recibir tanto objetos coche como objetos camión, pero sea lo que sea (coche o camión), siempre se hace un casting a la clase Coche, por lo que cuando recibamos un camión como argumento, nos dará un ClassCastExcepcion en tiempo de ejecución, ya que sintacticamente hablando es correcto y el compilador nos compilará el programa.

No sé si esto responde a tu pregunta.

Saludos.
  #3 (permalink)  
Antiguo 30/10/2013, 13:47
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: comprobacion de tipos

gracias marron el concepto lo entendi excelente pero esto no:
Logger.getLogger(CastObject.CLASE).log(Level.INFO, objCoche.toString());
  #4 (permalink)  
Antiguo 30/10/2013, 13:54
 
Fecha de Ingreso: noviembre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: comprobacion de tipos

Es simplemente una traza para el log, la excusa para que el método hiciera algo y no quedara únicamente el casting.

Saludos.
  #5 (permalink)  
Antiguo 30/10/2013, 20:57
 
Fecha de Ingreso: marzo-2012
Ubicación: Argentina
Mensajes: 111
Antigüedad: 12 años, 1 mes
Puntos: 12
Respuesta: comprobacion de tipos

Cita:
siempre se hace un casting a la clase Coche, por lo que cuando recibamos un camión como argumento, nos dará un ClassCastExcepcion
Por esto no debe usarse el "casteo"...o por lo menos no en ese ejemplo.
  #6 (permalink)  
Antiguo 31/10/2013, 06:33
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: comprobacion de tipos

muchas gracias a los dos

Etiquetas: comprobacion
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 09:40.