Sobes.tech
Middle

Quais são as razões para usar classes wrapper?

sobes.tech IA

Resposta da IA

  1. Fornecer uma representação orientada a objetos dos tipos de dados primitivos. As classes envolventes (Integer, Double, Boolean, etc.) permitem tratar os primitivos como objetos, o que é necessário para trabalhar com coleções Java (por exemplo, ArrayList, HashMap).
  2. Utilização de valores null. Os tipos primitivos não podem aceitar o valor null, enquanto as classes envolventes podem. Isto é útil para representar a ausência de valor.
  3. Fornecer métodos auxiliares. As classes envolventes contêm métodos estáticos úteis para a conversão de tipos, comparação, trabalho com strings e outras operações (por exemplo, Integer.parseInt(), Double.isNaN()).
  4. Autoboxing/Unboxing. A JVM converte automaticamente os primitivos em objetos envolventes correspondentes (autoboxing) e vice-versa (unboxing), o que simplifica o código ao trabalhar com coleções ou métodos que esperam objetos.
  5. Segurança de threads (imutabilidade). A maioria das classes envolventes são imutáveis, o que as torna seguras para threads e convenientes para uso em aplicações multithread.

Exemplo de uso numa coleção:

// Criar uma lista para armazenar números inteiros
List<Integer> integerList = new ArrayList<>();

// Adicionar um int primitivo, ocorre autoboxing
integerList.add(10); 
integerList.add(20);

// Obter um Integer, ocorre autounboxing
int firstElement = integerList.get(0); 

Exemplo de uso de método auxiliar:

String numberString = "123";
int parsedNumber = Integer.parseInt(numberString); // Conversão de string para int