logo

Autoboxing und Unboxing:

Die automatische Konvertierung primitiver Datentypen in den entsprechenden Wrapper-Typ wird als Boxing bezeichnet, der umgekehrte Vorgang als Unboxing. Dies ist die neue Funktion von Java5. Daher muss der Java-Programmierer den Konvertierungscode nicht schreiben.

Vorteil von Autoboxing und Unboxing:

Es ist keine manuelle Konvertierung zwischen Grundelementen und Wrappern erforderlich, sodass weniger Codierung erforderlich ist.

Einfaches Beispiel für Autoboxing in Java:

 class BoxingExample1{ public static void main(String args[]){ int a=50; Integer a2=new Integer(a);//Boxing Integer a3=5;//Boxing System.out.println(a2+' '+a3); } } 
Testen Sie es jetzt
 Output:50 5 
Laden Sie dieses Beispiel herunter

Einfaches Beispiel für Unboxing in Java:

Die automatische Konvertierung des Wrapper-Klassentyps in den entsprechenden primitiven Typ wird als Unboxing bezeichnet. Sehen wir uns das Beispiel des Unboxings an:

 class UnboxingExample1{ public static void main(String args[]){ Integer i=new Integer(50); int a=i; System.out.println(a); } } 
Testen Sie es jetzt

Ausgabe:

 50 

Autoboxing und Unboxing mit Vergleichsoperatoren

Autoboxing kann mit Vergleichsoperatoren durchgeführt werden. Sehen wir uns das Beispiel des Boxens mit Vergleichsoperator an:
 class UnboxingExample2{ public static void main(String args[]){ Integer i=new Integer(50); if(i<100){ unboxing internally system.out.println(i); } < pre> <span> Test it Now </span> <pre> Output:50 </pre> <hr> <h3>Autoboxing and Unboxing with method overloading</h3> <table class="table"> <tr><td>In method overloading, boxing and unboxing can be performed. There are some rules for method overloading with boxing: <ul> <tr><td>Widening beats boxing</td>  </tr><tr><td>Widening beats varargs</td>  </tr><tr><td>Boxing beats varargs</td>  </tr></ul> </td></tr> </table> <h3>1) Example of Autoboxing where widening beats boxing</h3> <table class="table"> <tr><td>If there is possibility of widening and boxing, widening beats boxing.</td></tr> </table> <pre> class Boxing1{ static void m(int i){System.out.println(&apos;int&apos;);} static void m(Integer i){System.out.println(&apos;Integer&apos;);} public static void main(String args[]){ short s=30; m(s); } } </pre> <span> Test it Now </span> <pre> Output:int </pre> <hr> <h3>2) Example of Autoboxing where widening beats varargs</h3> <table class="table"> <tr><td>If there is possibility of widening and varargs, widening beats var-args.</td></tr> </table> <pre> class Boxing2{ static void m(int i, int i2){System.out.println(&apos;int int&apos;);} static void m(Integer... i){System.out.println(&apos;Integer...&apos;);} public static void main(String args[]){ short s1=30,s2=40; m(s1,s2); } } </pre> <span> Test it Now </span> <pre> Output:int int </pre> <hr> <h3>3) Example of Autoboxing where boxing beats varargs</h3> <table class="table"> <tr><td>Let&apos;s see the program where boxing beats variable argument:</td></tr> </table> <pre> class Boxing3{ static void m(Integer i){System.out.println(&apos;Integer&apos;);} static void m(Integer... i){System.out.println(&apos;Integer...&apos;);} public static void main(String args[]){ int a=30; m(a); } } </pre> <span> Test it Now </span> <pre> Output:Integer </pre> <hr> <h3>Method overloading with Widening and Boxing</h3> <table class="table"> <tr><td>Widening and Boxing can&apos;t be performed as given below:</td></tr> </table> <pre> class Boxing4{ static void m(Long l){System.out.println(&apos;Long&apos;);} public static void main(String args[]){ int a=30; m(a); } } </pre> <span> Test it Now </span> <pre> Output:Compile Time Error </pre></100){>

Autoboxing und Unboxing mit Methodenüberladung

Beim Methodenüberladen können Boxing und Unboxing durchgeführt werden. Es gibt einige Regeln für das Überladen von Methoden beim Boxen:
Verbreiterung schlägt Boxen
Erweiterung schlägt Varargs
Boxen schlägt Varargs

1) Beispiel für Autoboxing, bei dem Verbreiterung besser ist als Boxen

Wenn es die Möglichkeit zum Verbreitern und Boxen gibt, ist Verbreiten besser als Boxen.
 class Boxing1{ static void m(int i){System.out.println(&apos;int&apos;);} static void m(Integer i){System.out.println(&apos;Integer&apos;);} public static void main(String args[]){ short s=30; m(s); } } 
Testen Sie es jetzt
 Output:int 

2) Beispiel für Autoboxing, bei dem die Erweiterung Varargs schlägt

Wenn die Möglichkeit einer Verbreiterung und Varargs besteht, ist die Verbreiterung besser als Var-Args.
 class Boxing2{ static void m(int i, int i2){System.out.println(&apos;int int&apos;);} static void m(Integer... i){System.out.println(&apos;Integer...&apos;);} public static void main(String args[]){ short s1=30,s2=40; m(s1,s2); } } 
Testen Sie es jetzt
 Output:int int 

3) Beispiel für Autoboxing, bei dem Boxen Varargs schlägt

Sehen wir uns das Programm an, in dem Boxen Variablenargumente schlägt:
 class Boxing3{ static void m(Integer i){System.out.println(&apos;Integer&apos;);} static void m(Integer... i){System.out.println(&apos;Integer...&apos;);} public static void main(String args[]){ int a=30; m(a); } } 
Testen Sie es jetzt
 Output:Integer 

Methodenüberladung mit Widening und Boxing

Widening und Boxing können nicht wie folgt durchgeführt werden:
 class Boxing4{ static void m(Long l){System.out.println(&apos;Long&apos;);} public static void main(String args[]){ int a=30; m(a); } } 
Testen Sie es jetzt
 Output:Compile Time Error