Las clases son tipos de datos. Los yesos se utilizan para identificar los objetos recuperados para matrices , listas y recopilaciones . Los yesos también pueden convertir datos de un tipo a otro. Excepciones fundido Clase o errores ClassCastException son generados por la máquina virtual Java ( JVM ) cuando se trata de convertir los tipos de datos incompatibles . Las clases y los arroja
En Java, arroja identificar el tipo de objeto cuando no pudiere ser reconocida . Tipos de clase son convertibles a tipos de interfaz que la clase utiliza la interfaz . Repartos: convertir un tipo de interfaz en un tipo de clase. Métodos en java realizan funciones o cálculos. Los métodos pueden extraer datos de diferentes tipos de clase . Cuando el método de Java intenta convertir los datos de una clase a otra utilizando moldes , los errores son lanzados .
Causas
errores
pueden resultar cuando las conversiones de datos y cálculos cambian la datos a tipos de datos incompatibles. Si una referencia se convierte en un tipo de datos incompatible o tipo de datos no válido, un ClassCastException es generado por Java. ClassCastException también se produce cuando una referencia de objeto se convierte en una subclase para los que no es una instancia . " SCJP Sun Certified Programmer para la plataforma Java" dice "mucho de los métodos en los tipos de objeto de retorno de API de Java que hay que echar a su tipo de clase adecuado para niños . " Cambio del tipo de datos cuando se procesa el método también puede causar ClassCastException errores.
tipos incompatibles
fechas y números enteros son tipos de datos incompatibles. Los personajes y los tipos de datos numéricos son incompatibles. Tipos booleanos son incompatibles con los números. Tipos de retorno covariantes no son compatibles con los tipos primitivos . Cuerdas y referencias a objetos son tipos incompatibles . Datos de punto flotante pueden ser convertidos en números enteros , y los valores se truncarán como resultado . Valores truncados pueden ser incompatibles en los cálculos posteriores método . Números enteros y cadenas son tipos de datos incompatibles.
Prevenir errores
Asegúrese de que las variables manipuladas por el mismo método que comparten el mismo tipo de datos. Echad la clase en un tipo de destino con un rango mayor que el tipo de fuente para evitar truncamiento. ClassCastException errores se pueden evitar mediante el uso de controles de verdadero-falso . Añadir sentencias "if" para verificar si los tipos de datos sean compatibles para evitar errores ClassCastException e instrucciones de manejo de excepciones sobre qué hacer si un tipo de datos no es compatible. Utilice el control de excepciones dentro de la lógica del método de excepciones de conversión de clase para evitar los mensajes de error . Declaraciones instanceof prevenir fundición correctos . Según " SCJP Sun Certified Programmer para la plataforma Java ", " utilizar el operador instanceof para evitar classcast - excepción cuando no esté seguro del tipo de datos real de una referencia que debe lanzar " " Estructuras de datos : Abstracción y Diseño Uso de Java " . " la ventaja de los genéricos (listas de matriz ) es que el compilador puede asegurar que todas las operaciones relacionadas con los objetos referenciados por un ArrayList genéricos son "seguros" y no provocar excepciones en tiempo de ejecución . "