Middle
Quais são as razões para usar classes wrapper?
sobes.tech IA
Resposta da IA
- 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).
- 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. - 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()). - 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.
- 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