Neste tutorial, aprenderemos sobre a classe Java Wrapper com a ajuda de exemplos.
As classes de moldagem em Java são usadas para converter tipos de primitivas ( int
, char
, float
, etc) em objectos correspondentes.
Cada um dos 8 tipos primitivos possui classes de wrapper correspondentes.
Tipo Primitivo | Classe Wrapper |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Converter tipo primitivo em objetos de invólucro
Também podemos usar o valueOf()
método para converter tipos primitivos em objetos correspondentes.
Exemplo 1: Tipos primitivos para objetos Wrapper
class Main ( public static void main(String() args) ( // create primitive types int a = 5; double b = 5.65; //converts into wrapper objects Integer aObj = Integer.valueOf(a); Double bObj = Double.valueOf(b); if(aObj instanceof Integer) ( System.out.println("An object of Integer is created."); ) if(bObj instanceof Double) ( System.out.println("An object of Double is created."); ) ) )
Resultado
Um objeto de Integer é criado. Um objeto de Double é criado.
No exemplo acima, usamos o valueOf()
método para converter os tipos primitivos em objetos.
Aqui, usamos o instanceof
operador para verificar se os objetos gerados são de Integer
ou Double
tipo ou não.
No entanto, o compilador Java pode converter diretamente os tipos primitivos em objetos correspondentes. Por exemplo,
int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b;
Esse processo é conhecido como boxe automático . Para saber mais, visite Java autoboxing e unboxing.
Nota : Também podemos converter tipos primitivos em objetos wrapper usando Wrapper
construtores de classe. Mas o uso de construtores é descartado após o Java 9.
Objetos Wrapper em Tipos Primitivos
Para converter objectos para os tipos de primitivas, podemos utilizar os métodos de valores correspondentes ( intValue()
, doubleValue()
, etc.) presentes em cada classe de invólucro.
Exemplo 2: Objetos Wrapper em Tipos Primitivos
class Main ( public static void main(String() args) ( // creates objects of wrapper class Integer aObj = Integer.valueOf(23); Double bObj = Double.valueOf(5.55); // converts into primitive types int a = aObj.intValue(); double b = bObj.doubleValue(); System.out.println("The value of a: " + a); System.out.println("The value of b: " + b); ) )
Resultado
O valor de a: 23 O valor de b: 5,55
No exemplo acima, usamos o método intValue()
e doubleValue()
para converter os objetos Integer
e Double
nos tipos primitivos correspondentes.
No entanto, o compilador Java pode converter automaticamente objetos em tipos primitivos correspondentes. Por exemplo,
Integer aObj = Integer.valueOf(2); // converts into int type int a = aObj; Double bObj = Double.valueOf(5.55); // converts into double type double b = bObj;
Este processo é conhecido como unboxing . Para saber mais, visite Java autoboxing e unboxing.
Vantagens das classes Wrapper
- Em Java, às vezes podemos precisar usar objetos em vez de tipos de dados primitivos. Por exemplo, ao trabalhar com coleções.
// error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
- Podemos armazenar o valor nulo em objetos wrapper. Por exemplo,
// generates an error int a = null; // runs perfectly Integer a = null;
Nota : os tipos primitivos são mais eficientes do que os objetos correspondentes. Portanto, quando a eficiência é o requisito, são sempre recomendados tipos primitivos.