Java: Conversión de tipos (Java casting)

Anterior: Tipos numéricos con decimales

Java es un lenguaje fuertemente tipado, por lo que será necesario indicar el tipo de dato de un variable en su declaración. La información que se almacenará en dicha variable deberá ser compatible con el tipo indicado durante toda la ejecución. Esto hace que el código sea más confiable, pero habrá ocasiones en las que nos puede resultar útil convertir un dato almacenado con un tipo a otro tipo diferente. A esta conversión de tipos se la conoce como casting. Y eso es lo que vamos a ver en este artículo: Cómo hacer casting en java.

Existen dos tipos de conversiones de tipo o casting en Java: conversión implícita y conversión explícita.

Conversión de tipos implícita

El casting implícito se realiza de forma automática al asignar un valor de un tipo a otro compatible.

Ejemplo

byte x = 5;
int y = x;

El valor almacenado en x (byte) se convertirá a entero al asignarse a y (int).

Las posibles conversiones implícitas son:

Nuevo tipoTipos origen
shortbyte
intbyte, short, char
longbyte, short, char, int
floatbyte, short, char, int, long
doublebyte, short, char, int, long, float
Tabla de conversiones numéricas implícitas en Java

Conversión de tipos explícita

En el casting explicito es tarea del programador especificar el nuevo tipo al que se va a transformar el dato. Se escribe de forma explicita entre paréntesis delante del dato.

Ejemplos

byte a = 20;
int x = (int) a;

Al escribir int entre paréntesis se fuerza a cambiar el dato de tipo byte a int.

Hay que tener cuidado al realizar esta conversión ya que se puede aplicar a tipos no compatibles, lo que puede derivar en perdidas de información e incluso errores en ejecución.

float x = 5.7F;
int y = (int) x;

Se realizará la conversión, pero se perderá la parte decimal del número con punto flotante al guardarlo en y. Solo se guardará 5 en y. Aunque parezca ilógico, habrá ocasiones en las que esta perdida de precisión nos pueden resultar útil.

Deja una respuesta

Subir ↑