DEV Community

Autoboxing e Encapsuladores de tipos

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:

  1. Numéricos: Byte, Short, Integer, Long, Float, Double.
  2. 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)

Enter fullscreen mode Exit fullscreen mode

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

Enter fullscreen mode Exit fullscreen mode

Unboxing Manual:
Extrai o valor de um objeto encapsulador.

int i = iOb.intValue(); // Unboxing manual

Enter fullscreen mode Exit fullscreen mode

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
  }
}

Enter fullscreen mode Exit fullscreen mode

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)