Introduction
In this article, we discuss Autoboxing and Unboxing in Java as a Java5 new feature.
Java Autoboxing and Unboxing
Conversion of primitive data types into their equivalent Wrapper type automatically is known as Autoboxing and the reverse operation of that is known as Unboxing. This is a new feature of Java5. So the Java programmer doesn't need to write the conversion code.
Advantages
There is no need for manual conversion so we have less coding to do.
Example 1: This example shows Autoboxing in Java.
- class AutoBoxingEx1 {
- public static void main(String args[]) {
- int x = 100;
- Integer x2 = new Integer(x);
- Integer x3 = 5;
- System.out.println(x2 + " " + x3);
- }
- }
Output
Using comparison operators to define Autoboxing and Unboxing
Using comparison operators Autoboxing is performed.
Example 2: In this example; using comparison operators we saw Autoboxing and Unboxing.
- class UnBoxingEx1 {
- public static void main(String args[]) {
- Integer x = new Integer(150);
- if (x < 200) {
- System.out.println(x);
- }
- }
- }
Output
Using method overloading define Autoboxing and Unboxing
There are some rules for method overloading with boxing.
- widening beats varargs
- widening beats boxing
- Boxing beats varargs
1. Autoboxing where widening beats varargs
If there is the possibility of widening and varargs in Java then widening beats var-args.
Example
- class AutoboxingEx3 {
- static void mthd(int x, int x2) {
- System.out.println("display int display int");
- }
- static void mthd(Integer...x) {
- System.out.println("display Integer...");
- }
- public static void main(String args[]) {
- short srt1 = 120, srt2 = 140;
- mthd(srt1, srt2);
- }
- }
Output
2. Autoboxing where widening beats boxing
The following example shows the following Autoboxing where widening beats boxing.
Example
- class AutoboxingEx2 {
- static void mthd(int x) {
- System.out.println("display int");
- }
- static void mthd(Integer x) {
- System.out.println("display Integer");
- }
- public static void main(String args[]) {
- short srt = 120;
- mthd(srt);
- }
- }
Output
3. Autoboxing where boxing beats varargs
The following example shows that boxing beats a variable argument.
Example
- class AutoboxingEx4 {
- static void mthd(Integer x) {
- System.out.println("Display Integer");
- }
- static void mthd(Integer...x) {
- System.out.println("Display Integer...");
- }
- public static void main(String args[]) {
- int k = 130;
- mthd(k);
- }
- }
Output
Method overloading using Boxing and Widening.
The following example shows that Widening and Boxing can't be performed.
Example
- class AutoboxingEx5 {
- static void mthd(Long lng) {
- System.out.println("Display Long");
- }
- public static void main(String args[]) {
- int x = 120;
- mthd(x);
- }
- }
Output:
.
Note: Since they generate a compile-time error that shows we can't perform Widening and Boxing at a time