Introdução ao Autoboxing e Autounboxing
Definição: Adicionados no JDK 5, simplificam a conversão entre tipos primitivos e seus objetos encapsuladores.
Benefícios:
- Simplificação de código.
- Otimização em situações comuns no desenvolvimento Java.
- Integração com genéricos (abordado em capítulos futuros).
Encapsuladores de Tipos
Tipos Primitivos: São usados por questões de desempenho (e.g., int, double).
Necessidade de Encapsuladores:
- Permitem trabalhar com tipos primitivos como objetos.
- Necessários em estruturas de dados que não suportam tipos primitivos (e.g., ArrayList).
- Permitem passar tipos primitivos por referência.
Encapsuladores Disponíveis:
- Numéricos: Byte, Short, Integer, Long, Float, Double.
- Outros: Character, Boolean.
Características dos Encapsuladores de Tipos
- Métodos Úteis (ex.: em Number):
- Convertem valores para diferentes tipos primitivos: intValue(), doubleValue(), floatValue(), etc.
Construtores:
Aceitam valores primitivos ou strings como entrada.
Exemplos:
Integer iOb1 = new Integer(100); // De valor inteiro
Integer iOb2 = new Integer("100"); // De string (pode lançar NumberFormatException)
Método toString():
Retorna o valor encapsulado em forma de string para exibição.
Boxing e Unboxing Manual
Boxing Manual:
Encapsula um valor primitivo em um objeto
Integer iOb = new Integer(100); // Boxing manual
Unboxing Manual:
Extrai o valor de um objeto encapsulador.
int i = iOb.intValue(); // Unboxing manual
Exemplo de Boxing e Unboxing Manual
class Wrap {
public static void main(String args[]) {
Integer iOb = new Integer(100); // Encapsulamento manual
int i = iOb.intValue(); // Extração manual
System.out.println(i + " " + iOb); // Saída: 100 100
}
}
Problemas com o Método Manual
Tedioso e propenso a erros.
Exige construção e extração explícitas.
Soluções com Autoboxing e Autounboxing
Automatizam o processo de conversão entre primitivos e objetos.
Simplificam a codificação ao eliminar a necessidade de criar objetos ou extrair valores manualmente.
Top comments (0)