Java Reference
In-Depth Information
The reverse conversion from an object of a wrapper class to a value of its associated
primitive type is called unboxing . Unboxing is also done automatically in Java (starting
in version 5.0). The following are examples of automatic unboxing:
automatic
unboxing
Integer numberOfSamuri = new Integer(47);
int n = numberOfSamuri;
Double price = new Double(499.99);
double d = price;
Character grade = new Character('A');
char c = grade;
Java automatically applies the appropriate accessor method ( intValue , doubleValue ,
or charValue in these cases) to obtain the value of the primitive type that is assigned
to the variable. So the previous examples of automatic unboxing are equivalent to the
following code, which is what you had to write in older versions of Java that did not do
automatic unboxing:
Integer numberOfSamuri = new Integer(47);
int n = numberOfSamuri.intValue();
Double price = new Double(499.99);
double d = price.doubleValue();
Character grade = new Character('A');
char c = grade.charValue();
Our previous examples involved either only automatic boxing or only automatic
unboxing. That was done to simplify the discussion by allowing you to see each of
automatic boxing and automatic unboxing in isolation. However, code can often
involve a combination of automatic boxing and unboxing. For example, consider the
following code, which uses both automatic boxing and automatic unboxing:
Double price = 19.90;
price = price + 5.12;
This code is equivalent to the following, which is what you had to write in older
versions of Java that did not do automatic boxing and unboxing:
Double price = new Double(19.90);
price = new Double(price.doubleValue() + 5.12);
Automatic boxing and unboxing applies to parameters as well as to the simple
assignment statements we just discussed. You can plug in a value of a primitive type,
such as a value of type int , for a parameter of the associated wrapper class, such as
Integer . Similarly, you can plug a wrapper class argument, such as an argument of
type Integer , for a parameter of the associated primitive type, such as int .
 
Search WWH ::




Custom Search