wrappers

 

                See also:  Boolean class,  Character class,  conversion methods charts

 

  All wrappers take Strings in double quotes as well as numbers for constructor parameters. 

 

  char’s wrapper class’s name is the full word Character.  It's not "Char". 

 

  int's wrapper class is named Integer. It's not "Int".

 

  All the basic wrapper classes are immutable.  Contents can't be changed. 

 

  Watch the required types in constructors.  i.e.

 

Long L = new Long( x );                 Is good only if x was some integer type.  A double or float gives a compile error.

Integer I = new Integer( x );            Is OK only if x was an integer type of int or smaller, meaning not a long. 

                                                A long gives a compile error.

 

  All the numeric wrapper classes have these special final static values for assigning to primitives:

 

Wrapperclassname.MAX_VALUE;

Wrapperclassname.MIN_VALUE;  

 

  You can cast up automatically when assigning wrapper values.  i.e.

 

int x = Byte.MAX_VALUE;               compiles OK

byte b = Integer.MAX_VALUE;         won't work as ints are too big for bytes

 

  Only Float and Double have NEGATIVE_INFINITY and POSITIVE_INFINITY.  There's no Integer.MAX_VALUE.  There's no Character.MAX_VALUE  etc.

 

  Wrapperclassname.NEGATIVE_INFINITY is the value of any negative divided by zero. 

 

■ Note that toString( ) returns the word “–Infinity for NEGATIVE_INFINITY.

 

  Wrapperclassname.POSITIVE_INFINITY is the value of any a positive divided by zero. 

 

■ Note toString( ) gives Infinity for POSITIVE_INFINITY.

 

  Printing any wrapper object containing NaN prints the word NaN.  i.e.

 

Wrapperclassname.NaN;   

toString( ) on a NaN gives the word NaN      

 

  Boolean and Character are the two which don’t extend Number.

 

  Character alone has no toString( ) method.

 

  Byte, Short, and Long don't take an int in their constuctors - they need a String (or a b, s, or l primitive, respectively).  i.e.

 

Byte B = new Byte(5);        won't compile

Byte B = new Byte("5");     works.

 

  Integer takes an int OK in its constructor.  Also Float and Double take float and double  primitives OK.

 

  Float takes doubles too.