logo

Classi wrapper in Java

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
    Modificare il valore in Metodo:Java supporta solo chiamate per valore. Quindi, se passiamo un valore primitivo, non cambierà il valore originale. Ma, se convertiamo il valore primitivo in un oggetto, cambierà il valore originale.Serializzazione:Dobbiamo convertire gli oggetti in flussi per eseguire la serializzazione. Se disponiamo di un valore primitivo, possiamo convertirlo in oggetti tramite le classi wrapper.Sincronizzazione:La sincronizzazione Java funziona con oggetti in multithreading.pacchetto java.util:Il pacchetto java.util fornisce le classi di utilità per gestire gli oggetti.Struttura della raccolta:Il framework di raccolta Java funziona solo con gli oggetti. Tutte le classi del framework di raccolta (ArrayList, LinkedList, Vector, HashSet, LinkedHashSet, TreeSet, PriorityQueue, ArrayDeque, ecc.) si occupano solo di oggetti.

Le otto classi del java.lang pacchetto sono conosciuti come classi wrapper in Java. Di seguito è riportato l'elenco delle otto classi wrapper:

Tipo primitivoClasse involucro
booleanoBooleano
car Carattere
byteByte
cortoCorto
int Numero intero
lungoLungo
galleggianteGalleggiante
DoppioDoppio

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