Neste tutorial, aprenderemos sobre autoboxing e unboxing Java com a ajuda de exemplos.
Java Autoboxing - Tipo primitivo para objeto Wrapper
No autoboxing , o compilador Java converte automaticamente os tipos primitivos em seus objetos de classe de wrapper correspondentes. Por exemplo,
int a = 56; // autoboxing Integer aObj = a;
O Autoboxing tem uma grande vantagem ao trabalhar com coleções Java.
Exemplo 1: Java Autoboxing
import java.util.ArrayList; class Main ( public static void main(String() args) ( ArrayList list = new ArrayList(); //autoboxing list.add(5); list.add(6); System.out.println("ArrayList: " + list); ) )
Resultado
ArrayList: (5, 6)
No exemplo acima, criamos uma lista de array do tipo Integer. Portanto, a lista de arrays só pode conter objetos do Integer
tipo.
Observe a linha,
list.add(5);
Aqui, estamos passando o valor do tipo primitivo. No entanto, devido ao autoboxing , o valor primitivo é automaticamente convertido em um Integer
objeto e armazenado na lista de vetores.
Java Unboxing - Objetos Wrapper para Tipos Primitivos
No unboxing , o compilador Java converte automaticamente os objetos da classe do wrapper em seus tipos primitivos correspondentes. Por exemplo,
// autoboxing Integer aObj = 56; // unboxing int a = aObj;
Assim como o autoboxing , o unboxing também pode ser usado com coleções Java.
Exemplo 2: Java Unboxing
import java.util.ArrayList; class Main ( public static void main(String() args) ( ArrayList list = new ArrayList(); //autoboxing list.add(5); list.add(6); System.out.println("ArrayList: " + list); // unboxing int a = list.get(0); System.out.println("Value at index 0: " + a); ) )
Resultado
ArrayList: (5, 6) Valor no índice 0: 5
No exemplo acima, observe a linha,
int a = list.get(0);
Aqui, o get()
método retorna o objeto no índice 0. No entanto, devido ao unboxing , o objeto é automaticamente convertido no tipo primitivo int
e atribuído à variável a.