Can you please tell me whats wrong with my code? I am Getting an Error like this. /* Error
WrapperTest.java:7: cannot find symbol symbol : class valueOf location: class java.lang.Integer Integer i3=new Integer.valueOf("101011",2); ^ WrapperTest.java:8: cannot find symbol symbol : class valueOf location: class java.lang.Integer Integer i4=new Integer.valueOf("101011",8); ^ WrapperTest.java:9: cannot find symbol symbol : class valueOf location: class java.lang.Integer Integer i5=new Integer.valueOf("101011",16); ^ WrapperTest.java:23: cannot find symbol symbol : class valueOf location: class java.lang.Float Float f3=new Float.valueOf("3.14f"); ^ 4 errors
Originally posted by Ernest Friedman-Hill: Note that inside the code for these "valueOf()" methods you would find a use of "new" to create the objects these methods return.
Not necessarily. The Byte, Short, Integer and Long classes creates wrappers for all numbers from -128 to 127 when the class is loaded, and returns those when possible. For every other number a new object is created. Character does the same but without the negative part, as negative characters are not possible. Float and Double do just return a new Float/Double object each time.
True, but even so, those cached objects were originally created with the new keyword. It's just that this happened when the class was loaded & initialized, not when valueOf() was called. And either way, "new" does occur in the code, even if it's not executed every time valueOf() is called. [ November 06, 2007: Message edited by: Jim Yingst ]