¿Cómo resolver ClassCastException en Java?

Como Resolver Classcastexception En Java



En Java, el “ ClassCastException ” ayuda a identificar problemas de compatibilidad de tipos en el tiempo de ejecución, al permitir que los desarrolladores los detecten temprano en la fase de desarrollo. También garantiza la seguridad de tipos, evitando inconsistencias en el programa. ClassCastException ayuda mucho en el proceso de depuración, prueba, conversión de tipo correcto, etc.

Esta guía demuestra el procedimiento para resolver ClassCastException en Java.







¿Cómo surge ClassCastException en Java?

El ' ClassCastException ” garantiza la conversión de tipos adecuada y evita errores de tiempo de ejecución causados ​​por conversiones de tipos incompatibles. En términos simples, esta excepción se genera cuando se intenta convertir un objeto en un tipo incompatible.



Por ejemplo, visite el siguiente código sobre el ' ClassCastException en Java:



importar java.io.* ;
importar java.lang.* ;
importar java.util.* ;

clase Sugerencia de Linux {
  //Creación de clase de controlador
  público estático vacío principal ( Cadena [ ] argumentos )
  {
  intentar {
  Objeto padre = nuevo Objeto ( ) ;
 
  Cadena niño = ( Cadena ) padre ;
  Sistema . afuera . imprimir ( niño ) ;
  }
  atrapar ( Excepción F ) {
    Sistema . afuera . imprimir ( F ) ;
  }
  }
}

Explicación del código anterior:





  • En el ' intentar 'bloque, la instancia de un objeto' padre ” se declara utilizando el “ nuevo ” palabra clave.
  • Después de eso, se utiliza el encasillamiento en el que el ' objeto ” tipo se está encasillando y tiene el nombre de “ niño ”.
  • Este encasillamiento está violando la regla de que la clase principal no debe encasillarse en su clase secundaria. Por eso surge la excepción porque el “ objeto ” type es una clase principal.
  • Al final, el “ atrapar Se utiliza el bloque ” que toma “ Excepción ” como parámetro e imprime un mensaje en la consola.

Después del final de la fase de ejecución:



La instantánea anterior muestra la aparición de ClassCastException en Java.

¿Cómo resolver ClassCastException en Java?

Se utilizan tres posibles soluciones que el desarrollador puede resolver fácilmente o evitar la posibilidad de plantear el ' ClassCastException ” en Java.

Estas soluciones se describen a continuación por separado:

Solución 1: uso del operador 'instancia de'

El ' en vez de El operador ” verifica si el “ objeto ” es una instancia del tipo deseado o no. Esta verificación ayuda a prevenir la ocurrencia de “ ClassCastException ”. Por ejemplo, visite el siguiente bloque de código:

público clase TypeCheckingLinuxHint {
  público estático vacío principal ( Cadena [ ] argumentos ) {
 
    Objeto padre = 'Familia LinuxHint' ;
    si ( padre en vez de Cadena ) {
      Cadena niño = ( Cadena ) padre ;
      Sistema . afuera . imprimir ( 'Después de encasillar String:' + niño ) ;
    } demás {
      Sistema . afuera . imprimir ( 'El objeto es una instancia del tipo String deseado'. ) ;
    }
  }
}

Explicación del código anterior:

  • Primero el ' padre se crea el objeto ” que se inicializa con un valor ficticio dentro del “ intentar ' bloquear.
  • Luego, usa el 'si' declaración en la que “ en vez de El operador ” se utiliza para verificar la instancia del “ padre 'objeto con deseado' Cadena ' tipo.
  • A continuación, si la condición devuelve “ verdadero ” se realiza el encasillamiento y se muestra en la consola.
  • De lo contrario, el mensaje de error personalizado se muestra en la consola.

Después del final de la fase de ejecución:

La instantánea muestra que el encasillamiento se realizó con éxito y ClassCastException se resolvió usando el ' en vez de ” operador.

Solución 2: revisar y corregir la operación de encasillamiento

Otra solución es verificar el código varias veces y revisar los tipos compatibles para encasillar. Por ejemplo, visite el siguiente código en el que el ' ClassCastException ” se detiene debido a un tipo deseado incompatible para el encasillamiento:

público clase TypeCheckLinuxHint {
  público estático vacío principal ( Cadena [ ] argumentos ) {
Objeto padre = 'Familia LinuxHint' ;
Entero número convertido = ( Entero ) padre ;
Sistema . afuera . imprimir ( 'Número después de encasillar:' + número convertido ) ;
  }
}

En el código anterior, el programador emitió incorrectamente el ' Cadena ' a ' Entero ”.

Después del final de la fase de compilación:

La instantánea anterior muestra la aparición de ClassCastException.

Solución 3: uso de genéricos

Los programadores pueden usar “ genéricos ” para especificar los tipos esperados y hacer cumplir la seguridad de tipos en el momento de la compilación.

Por ejemplo, visite el siguiente código:

importar java.util.ArrayList ;
importar java.util.Lista ;

público clase usandoGenéricos {
  público estático vacío principal ( Cadena [ ] argumentos ) {
Lista < Cadena > empName = nuevo Lista de arreglo <> ( ) ;
empName. agregar ( 'Harry' ) ;
empName. agregar ( 'Alfarero' ) ;

  Cadena Inicial = empName. conseguir ( 0 ) ;
  Cadena Final = empName. conseguir ( 1 ) ;

  Sistema . afuera . imprimir ( 'Nombre de pila: ' + Inicial ) ;
  Sistema . afuera . imprimir ( 'Segundo nombre: ' + Final ) ;
  }
}

Explicación del código anterior:

  • Primero, las utilidades requeridas se importan al archivo Java y una clase de ' usandoGenéricos ” se declara.
  • A continuación, el “ Lista de arreglo ” de tipo “ Cadena ” se declara con el nombre “ empName ” e inicializado proporcionando dos elementos de datos ficticios.
  • Luego, crea dos variables de tipo String llamadas “ Inicial ' y ' Final ”. Después de eso, asigne valores accediendo a los números de índice.
  • Al final, muestra ambas variables para ver el resultado.

Después del final de la ejecución, la salida se ve así:

La instantánea anterior ilustra que el encasillamiento se ha realizado mediante el uso de genéricos.

Conclusión

Para resolver el “ ClassCastException ” en Java, el programador debe garantizar la compatibilidad de tipos adecuada, el uso de “ genéricos ' y el ' en vez de ” operador. Para resolver la excepción, el programador debe revisar y corregir la operación de conversión garantizando la compatibilidad de tipos adecuada. Además, este “ ClassCastException ” se puede evitar usando “ genéricos ” y con el uso de un “ en vez de ” operador. Esta guía ha demostrado el método para resolver ClassCastException en Java.