Una forma de realizar conversiones consiste en colocar el tipo destino entre paréntesis, a la izquierda del valor que queremos convertir de la forma siguiente: Tipo VariableNueva = (NuevoTipo) VariableAntigua;
Por ejemplo: int miNumero = (int) ObjetoInteger; char c = (char)System.in.read();
En el primer ejemplo, extraemos como tipo primitivo int el valor entero contenido en un campo del objeto Integer. En el segundo caso, la función read devuelve un valor int, que se convierte en un char debido a la conversión (char), y el valor resultante se almacena en la variable de tipo carácter c.
El tamaño de los tipos que queremos convertir es muy importante. No todos los tipos se convertirán de forma segura. Por ejemplo, al convertir un long en un int, el compilador corta los 32 bits superiores del long (de 64 bits), de forma que encajen en los 32 bits del int, con lo que si contienen información útil, ésta se perderá. Este tipo de conversiones que suponen pérdida de información se denominan “conversiones no seguras” y en general se tratan de evitar, aunque de forma controlada pueden usarse puntualmente.
De forma general trataremos de atenernos a la norma de que "en las conversiones debe evitarse la pérdida de información". En la siguiente tabla vemos conversiones que son seguras por no suponer pérdida de información.
TIPO ORIGEN
|
TIPO DESTINO
|
byte
|
double, float, long, int, char, short
|
short
|
double, float, long, int
|
char
|
double, float, long, int
|
int
|
double, float, long
|
long
|
double, float
|
float
|
Double
|
No todos los tipos se pueden convertir de esta manera. Como alternativa, existen otras formas para realizar conversiones.
MÉTODO VALUEOF PARA CONVERSIÓN DE TIPOS
El método valueOf es un método sobrecargado aplicable a numerosas clases de Java y que permite realizar conversiones de tipos. Veamos algunos ejemplos de uso.
EXPRESIÓN
|
INTERPRETACIÓN aprenderaprogramar.com
|
miInteger = miInteger.valueOf (i)
|
Con i entero primitivo que se transforma en Integer
|
miInteger = miInteger.valueOf (miString)
|
El valor del String se transforma en Integer
|
miString = miString.valueOf (miBooleano)
|
El booleano se transforma en String “true” o “false”
|
miString = miString.valueOf (miChar)
|
El carácter (char) se transforma en String
|
miString = miString.valueOf (miDouble)
|
El double se transforma en String. Igualmente aplicable a float, int, long.
|
No todas las conversiones son posibles. Muchas veces por despiste los programadores escriben instrucciones de conversión incoherentes como miInteger = (int) miString;. El resultado en este caso es un error de tipo “Inconvertible types”. Un uso típico de valueOf es para convertir tipos primitivos en objetos.
EJERCICIO
El API de Java proporciona herramientas para pedir datos al usuario a través de ventanas. Un ejemplo de ello es el uso de la clase JOptionPane perteneciente al paquete javax.swing.JOptionPane del API Java. El método showInputDialog permite pedir un dato al usuario y almacena su respuesta en un objeto de tipo String. Queremos crear un programa que pida al usuario un número y muestre por pantalla el doble de ese número. Para ello hemos creado este código:
import javax.swing.JOptionPane;
public class ejemplo1 {
public static void main (String[] Args) {
String entradaUsuario = JOptionPane.showInputDialog ( "Introduzca un número:" );
System.out.println ("El doble del número introducido es: " + 2*entradaUsuario);
}
}
public class ejemplo1 {
public static void main (String[] Args) {
String entradaUsuario = JOptionPane.showInputDialog ( "Introduzca un número:" );
System.out.println ("El doble del número introducido es: " + 2*entradaUsuario);
}
}
Fuente:enlace
Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros
Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve para más información
No hay comentarios:
Publicar un comentario