Classe Wrapper em Java - Caixa automática, unboxing e conversão

Índice:

Anonim

Introdução à classe Wrapper em Java

A classe Wrapper é uma classe importante da biblioteca java.lang. Os objetos da classe Wrapper criam um wrapper para os tipos de dados primitivos. Ao criar um objeto da classe wrapper, é criado espaço na memória em que o tipo de dados primitivo é armazenado.

A classe Wrapper fornece alguns recursos para a conversão do objeto em dados primitivos e dados primitivos em objeto, isto é, boxe / unboxing. A conversão de objetos em dados primitivos e dados primitivos em um objeto ocorrem automaticamente. Tipo de dados primitivo refere-se a int, float, char, double, byte, etc.

Sintaxe:

A declaração abaixo mostra como uma classe Wrapper funciona no programa java.

por exemplo, int i = 100;

No exemplo abaixo, podemos ver que i é um tipo de dados inteiro. Algum tempo no número inteiro java precisa ser passado como um tipo de objeto. Nesse caso, podemos usar a classe wrapper para converter um número inteiro em um objeto.

Integer intVal = new Integer(i);

Na sintaxe acima, podemos ver como um tipo de dados primitivo está sendo convertido em um objeto usando um objeto de classe Integer. Também pode-se dizer que o tipo de dados primitivo é quebrado como um objeto.

Usos da classe Wrapper em Java

  1. A classe Wrapper pode ser usada para converter um objeto em um tipo de dados primitivo ou vice-versa.
  2. O uso de classes de wrapper melhora o desempenho do programa.
  3. A classe Wrapper ajuda na serialização do objeto e seu vice-versa. Ele pode converter dados primitivos em objetos. Às vezes, precisamos transmitir objetos; nesse caso, a classe wrapper pode convertê-la no formato de serialização.
  4. Alguns métodos importantes são fornecidos pela classe wrapper, que é usada para executar a pesquisa e classificação nas coleções.
  5. Subtração e adição, esses tipos de operações não podem modificar o valor antigo do inteiro primitivo da classe Wrapper, por isso a classe Wrapper é conhecida como imutável.
  6. Classe de wrapper usada no processo de multithreading, pois o processo de multithreading precisa de um objeto para a sincronização dos processos. A classe Wrapper converte diferentes tipos de dados em um objeto.

Com base no JavaAPI, a hierarquia de classes Wrapper mantém Object no topo das diferentes classes primitivas. Number, Character & Boolean chega ao segundo nível logo após o Objeto. No terceiro nível, Byte, Curto, Int, Longo, Flutuante, Duplo, vem com o tipo de dados Número.

As classes de wrapper usam os dois mecanismos a seguir Autoboxing e unboxing para a conversão / quebra do tipo de dados ou conversão de um objeto no tipo de dados primitivo.

Caixa automática: caixa automática refere-se à conversão automática do tipo de dados primitivo em objeto usando as classes Wrapper. É conhecido como Autoboxing. Nos Exemplos abaixo, int convertido em objeto Inteiro e nos exemplos c, diferentes tipos de dados primitivos estão sendo convertidos no objeto correspondente.

Unboxing: Unboxing é o processo inverso do Autoboxing. A conversão automática do objeto da classe wrapper para o tipo de dados primitivo correspondente é conhecida como Unboxing. No exemplo abaixo, b, o objeto Inteiro está sendo convertido para o tipo de dados primitivo int.

Exemplos de classe Wrapper em Java

Abaixo estão os diferentes exemplos de classe Wrapper em Java.

Exemplo 1

No exemplo abaixo, podemos ver como a conversão manual ocorre através da classe wrapper de int i para um objeto k.

Código:

import java.util.*;
class WrapperExample (
public static void main(String args())(
int j=100;
//converting int j to integer k as an object
Integer k = new Integer(j);
System.out.println(j + "\n" + k);
)
)

Resultado:

No exemplo acima, podemos ver como a conversão ocorre explicitamente.

Exemplo 2

No exemplo abaixo, podemos ver que esse processo de conversão às vezes ocorre automaticamente, ou seja, conhecido como autoboxing.

Código:

import java.util.*;
class AutoboxingUnboxingExample (
public static void main(String args())(
int j = 500;
ArrayList arrValues = new ArrayList();
arrValues.add(j); // autoboxing takes place implicitly
System.out.println(arrValues.get(0));
)
)

Resultado:

No exemplo acima, o valor int convertido em objeto implicitamente como um objeto. Além disso, esse valor pode ser obtido a partir do ArrayList.

Exemplo 3

Neste exemplo, passaremos pela implementação do Unboxing. Unboxing é o processo inverso do Autoboxing.

Código:

import java.util.*;
class AutoboxingUnboxingExample (
public static void main(String args())(
ArrayList arrValues = new ArrayList();
arrValues.add(250);
//unboxing here as int data type from Integer object
int k = arrValues.get(0);
//value printed is in primitive data type
System.out.println(k);
)
)

Resultado:

No exemplo acima, o campo do objeto ArrayList é convertido em k tipo de dados primitivo, isto é, int k.

Exemplo 4

O exemplo a seguir apresenta todos os detalhes da Caixa automática e Desembalagem.

Código:

import java.util.*;
class WrapperConversionExample (
public static void main(String args())(
int i = 15;
float j = 9.6f;
double k = 120.8;
byte l = 1;
//creating instance of Integer object
Integer iObj = new Integer(i);
//creating instance of Float object
Float fObj = new Float(j);
//creating instance of Double object
Double dObj = new Double(k);
//creating instance of Double object
Byte bObj = new Byte(l);
//value printed is in object
System.out.println("Value as an Integer object > " + iObj);
System.out.println("Value as a Float object > " + fObj);
System.out.println("Value as a Double object > " + dObj);
System.out.println("Value as a Byte object > " + bObj);
//primitive data type from the object
int m = iObj;
float n = fObj;
double o = dObj;
byte p = bObj;
//value printed is in primitive data type
System.out.println("Value as an int primitive type > " + m);
System.out.println("Value as a float primitive type > " + n);
System.out.println("Value as a double primitive type > "+ o);
System.out.println("Value as a byte primitive type > " + p);
)
)

Resultado:

No programa acima, podemos ver a implementação das classes Wrapper. As classes de wrapper estão convertendo o tipo de dados primitivo em objeto e objeto no tipo de dados primitivo. A classe wrapper fornece classes separadas para cada tipo de dados primitivo.

Conclusão

Através das classes Wrapper, podemos entender facilmente a caixa automática e a unboxing. Como a conversão ocorre do primitivo para o objeto e seu vice-versa, que pode ser facilmente entendido através das classes Wrapper. Para cada um dos tipos de dados primitivos, há uma classe dedicada em java.

Artigo recomendado

Este é um guia para a classe Wrapper em Java. Aqui discutimos a sintaxe e os usos da classe wrapper em Java, juntamente com diferentes exemplos e implementação de código. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Como o Case Statement em Java?
  2. O que é genérico em Java?
  3. O conceito de serialização em Java
  4. Perguntas da entrevista sobre as 8 principais Java
  5. Ferramentas de implantação Java
  6. Exemplos e como os genéricos funcionam em c #