English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, vamos aprender sobre as classes de embalagem do Java (Wrapper) com exemplos.
As classes de embalagem no Java são usadas para converter tipos primitivos (int, char, float, etc.) em seus respectivos objetos.
8Cada um dos tipos básicos tem um correspondente classe de embalagem.
Tipo primitivo | Classe de embalagem |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Ainda podemos usar o método valueOf() para converter tipos primitivos em seus respectivos objetos.
class Main { public static void main(String[] args) { //Criar tipo primitivo int a = 5; double b = 5.65; //Converter para wrapping Integer aObj = Integer.valueOf(a); Double bObj = Double.valueOf(b); if(aObj instanceof Integer) { System.out.println("Criar um objeto Integer."); } if(bObj instanceof Double) { System.out.println("Criar um objeto Double."); } } }
Resultados de saída
Criar um objeto Integer. Criar um objeto Double.
No exemplo acima, usamos o método valueOf() para converter tipos primitivos para objetos.
Aqui, usamos o operador instanceof para verificar se o objeto gerado pertence ao tipo Integer ou Double.
Mas, o compilador Java pode converter diretamente os tipos primitivos para os objetos correspondentes. Por exemplo,
int a = 5; //Converter para objeto Integer aObj = a; double b = 5.6; //Converter para objeto Double bObj = b;
Este processo é conhecido comoEncapsulamento automático.Para obter mais informações, acesseAutoboxing e Unboxing Java.
Atenção:também podemos usar o construtor de classes wrapping (Wrapper) para converter tipos primitivos para objetos wrapping.Mas no Java 9Após isso, não se usa mais o construtor.
Para converter um objeto para um tipo primitivo, podemos usar o método de valor correspondente de cada classe wrapping (intValue(), doubleValue(), etc.).
class Main { public static void main(String[] args) { //Criar objetos de classes wrapping Integer aObj = Integer.valueOf(23); Double bObj = Double.valueOf(5.55); //Converter para tipo primitivo int a = aObj.intValue(); double b = bObj.doubleValue(); System.out.println("O valor de a: ") + a); System.out.println("O valor de b: ") + b); } }
Resultados de saída
O valor de a: 23 O valor de b: 5.55
No exemplo acima, usamos os métodos intValue() e doubleValue() para converter os objetos Integer e Double para os tipos primitivos correspondentes.
Mas, o compilador Java pode converter automaticamente os objetos para os tipos primitivos correspondentes. Por exemplo,
Integer aObj = Integer.valueOf(2); //Convertendo para o tipo int int a = aObj; Double bObj = Double.valueOf(5.55); //Convertendo para o tipo double double b = bObj;
Este processo é conhecido comoUnboxing.Para obter mais informações, acesseAutoboxing e Unboxing Java.
Às vezes, em Java, podemos precisar usar objetos em vez de tipos de dados primitivos. Por exemplo, ao usar conjuntos.
// Erro ArrayList<int> list = new ArrayList<>(); //Funcionamento normal ArrayList<Integer> list = new ArrayList<>();
Neste caso, as classes wrappers podem nos ajudar a usar tipos de dados primitivos como objetos.
Podemos armazenar valores nulos em objetos de wrappers. Por exemplo,
//Será gerado um erro int a = null; // Funcionamento normal Integer a = null;
AtençãoOs tipos primitivos são mais eficientes que os tipos de objeto correspondentes. Portanto, sempre é recomendado usar tipos primitivos quando a eficiência é necessária.