Autoboxing e unboxing di Java

In questo tutorial, impareremo a conoscere l'autoboxing e unboxing di Java con l'aiuto di esempi.

Java Autoboxing - Tipo primitivo per oggetto wrapper

In autoboxing , il compilatore Java converte automaticamente i tipi primitivi nei corrispondenti oggetti di classe avvolgitore. Per esempio,

 int a = 56; // autoboxing Integer aObj = a; 

L'autoboxing ha un grande vantaggio quando si lavora con le raccolte Java.

Esempio 1: Java Autoboxing

 import java.util.ArrayList; class Main ( public static void main(String() args) ( ArrayList list = new ArrayList(); //autoboxing list.add(5); list.add(6); System.out.println("ArrayList: " + list); ) ) 

Produzione

 ArrayList: (5, 6) 

Nell'esempio sopra, abbiamo creato un elenco di array di tipo Integer. Quindi l'elenco degli array può contenere solo oggetti di Integertipo.

Notare la linea,

 list.add(5); 

Qui stiamo passando il valore del tipo primitivo. Tuttavia, a causa dell'autoboxing , il valore primitivo viene automaticamente convertito in un Integeroggetto e memorizzato nell'elenco degli array.

Java Unboxing - Oggetti wrapper per tipi primitivi

In unboxing , il compilatore Java converte automaticamente involucro classe oggetti nei corrispondenti tipi primitivi. Per esempio,

 // autoboxing Integer aObj = 56; // unboxing int a = aObj; 

Come l' autoboxing , anche l' unboxing può essere utilizzato con le raccolte Java.

Esempio 2: Java Unboxing

 import java.util.ArrayList; class Main ( public static void main(String() args) ( ArrayList list = new ArrayList(); //autoboxing list.add(5); list.add(6); System.out.println("ArrayList: " + list); // unboxing int a = list.get(0); System.out.println("Value at index 0: " + a); ) ) 

Produzione

 ArrayList: (5, 6) Valore con indice 0: 5 

Nell'esempio sopra, nota la linea,

 int a = list.get(0); 

Qui, il get()metodo restituisce l'oggetto all'indice 0. Tuttavia, a causa dell'unboxing , l'oggetto viene automaticamente convertito nel tipo primitivo inte assegnato alla variabile a.

Articoli interessanti...