1
respuesta

El autoboxing/unboxing puede resultar confuso. ¿Será que usted desmitifica el siguiente código?

public class TestWrapper {

public static void main(String[] args){
    Integer ref = Integer.valueOf("3");
    ref++;
    System.out.println(ref);
}

}

¡El valor se desenvuelve, luego se incrementa y luego se envuelve nuevamente!

creo que en este ejercicio hay un error por que se esta pasando un string ya que el numero esta entre comilla

1 respuesta

¡Hola Julián!

En realidad, el código que compartiste no tiene ningún error. Lo que sucede es que en la línea "Integer ref = Integer.valueOf("3");" se está creando un objeto de la clase Integer que contiene el valor 3, y ese objeto se asigna a la variable "ref". Luego, en la línea "ref++", se está incrementando el valor del objeto Integer en 1, y finalmente se está imprimiendo el valor de la variable "ref" con la línea "System.out.println(ref);".

El autoboxing y unboxing son procesos que permiten convertir automáticamente entre tipos primitivos y sus correspondientes clases envolventes. En este caso, el autoboxing convierte automáticamente el valor primitivo "int" en un objeto de la clase Integer cuando se asigna a la variable "ref", y el unboxing convierte automáticamente el objeto Integer en un valor primitivo "int" cuando se incrementa en la línea "ref++".

Espero haber aclarado tus dudas. ¡Buenos estudios!