IL classe wrapper in Java fornisce il meccanismo per convertire la primitiva in oggetto e l'oggetto in primitiva .
A partire da J2SE 5.0, autoboxing E spacchettamento la funzionalità converte automaticamente le primitive in oggetti e gli oggetti in primitive. La conversione automatica della primitiva in un oggetto è nota come autoboxing e viceversa unboxing.
Utilizzo delle classi Wrapper in Java
Java è un linguaggio di programmazione orientato agli oggetti, quindi dobbiamo occuparci di oggetti molte volte come in Collezioni, Serializzazione, Sincronizzazione, ecc. Vediamo i diversi scenari, in cui dobbiamo utilizzare le classi wrapper.
Java diviso in stringhe
Le otto classi del java.lang pacchetto sono conosciuti come classi wrapper in Java. Di seguito è riportato l'elenco delle otto classi wrapper:
Tipo primitivo | Classe involucro |
---|---|
booleano | Booleano |
car | Carattere |
byte | Byte |
corto | Corto |
int | Numero intero |
lungo | Lungo |
galleggiante | Galleggiante |
Doppio | Doppio |
Autoboxing
La conversione automatica del tipo di dati primitivo nella classe wrapper corrispondente è nota come autoboxing, ad esempio byte in Byte, char in Carattere, int in Integer, long in Long, float in Float, boolean in Boolean, double in Double e short a Breve.
A partire da Java 5, non è necessario utilizzare il metodo valueOf() delle classi wrapper per convertire la primitiva in oggetti.
Classe wrapper Esempio: da primitivo a wrapper
//Java program to convert primitive into objects //Autoboxing example of int to Integer public class WrapperExample1{ public static void main(String args[]){ //Converting int into Integer int a=20; Integer i=Integer.valueOf(a);//converting int into Integer explicitly Integer j=a;//autoboxing, now compiler will write Integer.valueOf(a) internally System.out.println(a+' '+i+' '+j); }}
Produzione:
convertire booleano in stringa
20 20 20
Spacchettamento
La conversione automatica del tipo wrapper nel corrispondente tipo primitivo è nota come unboxing. È il processo inverso dell'autoboxing. A partire da Java 5, non è necessario utilizzare il metodo intValue() delle classi wrapper per convertire il tipo wrapper in primitive.
reti e tipi
Classe wrapper Esempio: da wrapper a primitiva
//Java program to convert object into primitives //Unboxing example of Integer to int public class WrapperExample2{ public static void main(String args[]){ //Converting Integer to int Integer a=new Integer(3); int i=a.intValue();//converting Integer to int explicitly int j=a;//unboxing, now compiler will write a.intValue() internally System.out.println(a+' '+i+' '+j); }}
Produzione:
3 3 3
Esempio di classi wrapper Java
//Java Program to convert all primitives into its corresponding //wrapper objects and vice-versa public class WrapperExample3{ public static void main(String args[]){ byte b=10; short s=20; int i=30; long l=40; float f=50.0F; double d=60.0D; char c='a'; boolean b2=true; //Autoboxing: Converting primitives into objects Byte byteobj=b; Short shortobj=s; Integer intobj=i; Long longobj=l; Float floatobj=f; Double doubleobj=d; Character charobj=c; Boolean boolobj=b2; //Printing objects System.out.println('---Printing object values---'); System.out.println('Byte object: '+byteobj); System.out.println('Short object: '+shortobj); System.out.println('Integer object: '+intobj); System.out.println('Long object: '+longobj); System.out.println('Float object: '+floatobj); System.out.println('Double object: '+doubleobj); System.out.println('Character object: '+charobj); System.out.println('Boolean object: '+boolobj); //Unboxing: Converting Objects to Primitives byte bytevalue=byteobj; short shortvalue=shortobj; int intvalue=intobj; long longvalue=longobj; float floatvalue=floatobj; double doublevalue=doubleobj; char charvalue=charobj; boolean boolvalue=boolobj; //Printing primitives System.out.println('---Printing primitive values---'); System.out.println('byte value: '+bytevalue); System.out.println('short value: '+shortvalue); System.out.println('int value: '+intvalue); System.out.println('long value: '+longvalue); System.out.println('float value: '+floatvalue); System.out.println('double value: '+doublevalue); System.out.println('char value: '+charvalue); System.out.println('boolean value: '+boolvalue); }}
Produzione:
---Printing object values--- Byte object: 10 Short object: 20 Integer object: 30 Long object: 40 Float object: 50.0 Double object: 60.0 Character object: a Boolean object: true ---Printing primitive values--- byte value: 10 short value: 20 int value: 30 long value: 40 float value: 50.0 double value: 60.0 char value: a boolean value: true
Classe Wrapper personalizzata in Java
Le classi Java Wrapper racchiudono i tipi di dati primitivi, ecco perché sono note come classi wrapper. Possiamo anche creare una classe che racchiude un tipo di dati primitivo. Quindi, possiamo creare una classe wrapper personalizzata in Java.
//Creating the custom wrapper class class Javatpoint{ private int i; Javatpoint(){} Javatpoint(int i){ this.i=i; } public int getValue(){ return i; } public void setValue(int i){ this.i=i; } @Override public String toString() { return Integer.toString(i); } } //Testing the custom wrapper class public class TestJavatpoint{ public static void main(String[] args){ Javatpoint j=new Javatpoint(10); System.out.println(j); }}
Produzione:
10