Dominando Autoboxing e Unboxing em Java: Exemplos Práticos e Boas Práticas
Autoboxing e Unboxing em Java
Explore como o Java converte automaticamente entre tipos primitivos e objetos wrapper, e veja exemplos do mundo real que ilustram o processo.
Autoboxing em Java – De Primitivo para Objeto Wrapper
Quando você atribui um valor primitivo a uma variável de uma classe wrapper, o compilador Java realiza autoboxing e cria o objeto wrapper correspondente. Por exemplo:
int a = 56; // autoboxing
Integer aObj = a;
Autoboxing é especialmente útil ao trabalhar com coleções genéricas que só aceitam objetos. Mantém o código conciso e type-safe.
Exemplo 1: Autoboxing com ArrayList
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<Integer> lista = new ArrayList<>();
// autoboxing: primitivos 5 e 6 tornam-se objetos Integer
lista.add(5);
lista.add(6);
System.out.println("ArrayList: " + lista);
}
}
Saída
ArrayList: [5, 6]
Neste snippet, o ArrayList contém objetos Integer. O compilador faz automaticamente o boxing dos literais primitivos 5 e 6.
Unboxing em Java – De Wrapper para Primitivo
Por outro lado, unboxing converte um objeto wrapper de volta à sua forma primitiva. Por exemplo:
// autoboxing
Integer aObj = 56;
// unboxing
int a = aObj;
Unboxing funciona perfeitamente com coleções, permitindo recuperar valores como primitivos quando necessário.
Exemplo 2: Unboxing de ArrayList
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
ArrayList<Integer> lista = new ArrayList<>();
lista.add(5);
lista.add(6);
System.out.println("ArrayList: " + lista);
// unboxing: Integer no índice 0 torna-se int
int a = lista.get(0);
System.out.println("Valor no índice 0: " + a);
}
}
Saída
ArrayList: [5, 6] Valor no índice 0: 5
Aqui, lista.get(0) retorna um Integer; o compilador automaticamente faz unbox para int para atribuição a a.
Entender autoboxing e unboxing ajuda você a escrever código Java mais limpo e eficiente, especialmente ao interagir com coleções e APIs que esperam objetos.
Java
- Variáveis e Literais em Java: Guia Completo
- Dominando Entrada e Saída em Java: Imprimir, Ler e Formatados Seus Dados
- Entendendo Expressões, Instruções e Blocos em Java
- Classes e Objetos em Java: Guia Prático
- Classes e Métodos Abstratos em Java: Guia Completo
- Dominando Classes Aninhadas e Internas em Java: Tipos, Exemplos e Boas Práticas
- Java throw vs throws: Dominando Tratamento de Exceções com Exemplos Práticos
- Dominando Substituição de Strings em Java: replace(), replaceAll() e replaceFirst() Explicados
- Java String toLowerCase() & toUpperCase(): Converter Caixa de Texto com Consciência de Locale
- Dominando Java: Entendendo Objetos, Classes e Conceitos Fundamentais de POO