Java 5 autoboxing and unboxing allows easy conversion between primitive types and their corresponding wrapper classes in java programs.
Wrapper Class in Java
Below table shows the primitive types and their wrapper class in java.
Primitive type | Wrapper class | Constructor Arguments |
---|---|---|
byte | Byte | byte or String |
short | Short | short or String |
int | Integer | int or String |
long | Long | long or String |
float | Float | float, double or String |
double | Double | double or String |
char | Character | char |
boolean | Boolean | boolean or String |
Why do we need wrapper classes?
I think it was a smart decision to keep primitive types and Wrapper classes separate to keep things simple. We need wrapper classes when we need a type that will fit in the Object-Oriented Programming like Collection classes. We use primitive types when we want things to be simple.
Primitive types can’t be null but wrapper classes can be null.
Wrapper classes can be used to achieve polymorphism.
Here is a simple program showing different aspects of wrapper classes in java.
WrapperClasses.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
package com.journaldev.misc; import java.util.ArrayList; import java.util.List; public class WrapperClasses { private static void doSomething(Object obj){ } public static void main(String args[]){ int i = 10; char c="a"; //primitives are simple to use int j = i+3; //polymorphism achieved by Wrapper classes, we can't pass primitive here doSomething(new Character(c)); List<Integer> list = new ArrayList<Integer>(); //wrapper classes can be used in Collections Integer in = new Integer(i); list.add(in); //autoboxing takes care of primitive to wrapper class conversion list.add(j); //wrapper classes can be null in = null; } } |