No puedo convertir de int a string en java

publicado por: Anonymous

convierto la variable int en entero pero cuando intento reemplazar su valor por un string no me funciona, cual puede ser la solucion?

solución

Recuerda que Java es un lenguaje fuertemente “tipeado”, es decir, los tipos de datos almacenados en las variables o clases definidas con cierto tipo no pueden almacenar otro tipo de dato. Es decir, no puedes guardar String en int, ni un int en String. Para guardar un valor de cierto tipo en una variable de otro tipo, es necesario “forzar” el tipo, o hacer un casting.

Aclarando sin profundizar demasiado, para ver por qué es posible guardar un valor de tipo de dato en otro tipo de dato, hay que ver la herencia y el casting:

  • Herencia: cuando heredas una clase, estás creando un tipo que es un “supertipo” de uno anterior, y por tanto contiene lo mismo que la clase base, razón por la cual se puede tratar igual que si fuera del tipo base. Por ejemplo, supon una clase B que hereda de A. Una instancia de la clase B se puede guardar en una variable tipo A, porque básicamente, B es todo lo que es A.
  • Casting: es hacer una conversión desde un tipo y lo almacenas en otro. Al hacer esta conversión, no estás guardando el valor original, sino más bien estás almacenando el equivalente del valor del primer tipo dentro del dominio del segundo tipo. Esto es lo que quieres hacer en tu caso.

Observa que en tu código, la variable tipo es de tipo int, y por tanto no puedes almacenar en ella nada que no sea un int. Esta es la razón por la cual tu línea

tipo = " nkn"; 

está equivocada: no puedes meter un String en un int (a menos de hacer un casting -> cambiando de dominio el valor).

Obviando algunas partes, puedes hacer alguna de las siguientes dos opciones:

//Opción 1:
   int tipo;
   String tipoEnCadena;
   tipoEnCadena= tipo+""
   tipoEnCadena=" nkn";

//Opción 2:
   int tipo;
   String tipoEnCadena;
   tipoEnCadena=Integer.toString(tipo);
   tipoEnCadena=" nkn";
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *