Difference between revisions of "Autoboxing"
From Suhrid.net Wiki
Jump to navigationJump to searchLine 9: | Line 9: | ||
* toString() returns the string representation of the value represented by the wrapper. | * toString() returns the string representation of the value represented by the wrapper. | ||
* also base conversion is possible through static utility methods in Integer and Long - e.g. toBinaryString(), toHexString() and toOctalString(). | * also base conversion is possible through static utility methods in Integer and Long - e.g. toBinaryString(), toHexString() and toOctalString(). | ||
+ | |||
+ | == Autoboxing Intro == | ||
+ | |||
+ | * New feature in Java 5 which avoids having to manually wrap and unwrap a primitive. | ||
+ | * A wrapper can be used like a primitive. | ||
+ | * But since wrappers are immutable, any "change" in the wrappers value leads to a new wrapper object being created. See below: incrementing y means y will refer to a new object. | ||
+ | |||
+ | <syntaxhighlight lang="java5"> | ||
+ | |||
+ | Integer y = new Integer(42); | ||
+ | Integer x = y; | ||
+ | System.out.println(x==y); //Prints true | ||
+ | y++; | ||
+ | System.out.println(x==y); //Prints false | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | * | ||
+ | |||
[[Category:OCPJP]] | [[Category:OCPJP]] |
Revision as of 01:37, 13 August 2011
Wrapper Classes
- Wrapper classes for primtives are a mechanism to include primitives in activities reserved for objects. e.g. being part of Collections.
- Wrapper objects are immutable !
- All have two constructors - one takes a primitive, other a string representation.
- A valueOf() method also takes a string and returns a wrapper object in return. Also accepts an optional base (for Octal, Hex etc)
- Wrapper to primitive - use the xxxValue() methods like intValue() and floatValue()
- String to primitive - e.g. Integer.parseInt("22"), Double.parseDouble("3.14");
- toString() returns the string representation of the value represented by the wrapper.
- also base conversion is possible through static utility methods in Integer and Long - e.g. toBinaryString(), toHexString() and toOctalString().
Autoboxing Intro
- New feature in Java 5 which avoids having to manually wrap and unwrap a primitive.
- A wrapper can be used like a primitive.
- But since wrappers are immutable, any "change" in the wrappers value leads to a new wrapper object being created. See below: incrementing y means y will refer to a new object.
Integer y = new Integer(42);
Integer x = y;
System.out.println(x==y); //Prints true
y++;
System.out.println(x==y); //Prints false