Code review request: bugs 6480728 and 6655735 in the wrapper classes
Lance J. Andersen
Lance.Andersen at Sun.COM
Wed Oct 7 20:58:59 UTC 2009
Joe,
These look ok to me
-lance
Joseph D. Darcy wrote:
> Hello.
>
> Please review these simple cleanup fixes in the wrapper classes:
>
> 6480728: Byte.valueOf(byte) returns a cached value but
> Byte.valueOf(String)
> 6655735: Integer.toString() and String.valueOf(int) contain slow
> delegations
>
> The fix for the first bug is for the valueOf(String) and decode
> methods in Byte and Short to return objects after going through the
> cache. This behavior is already present in Integer and Long.
>
> The second fix changes method calls in various wrapper classes and in
> String to go to the Foo -> String method most directly implementing
> the desired conversion
>
> Patch is below; webrev at
> http://cr.openjdk.java.net/~darcy/6480728.0/
>
> -Joe
>
> --- old/src/share/classes/java/lang/Byte.java 2009-10-07
> 12:18:04.000000000 -0700
> +++ new/src/share/classes/java/lang/Byte.java 2009-10-07
> 12:18:03.000000000 -0700
> @@ -201,7 +201,7 @@
> */
> public static Byte valueOf(String s, int radix)
> throws NumberFormatException {
> - return new Byte(parseByte(s, radix));
> + return valueOf(parseByte(s, radix));
> }
>
> /**
> @@ -277,7 +277,7 @@
> if (i < MIN_VALUE || i > MAX_VALUE)
> throw new NumberFormatException(
> "Value " + i + " out of range from input " + nm);
> - return (byte)i;
> + return valueOf((byte)i);
> }
>
> /**
> @@ -374,7 +374,7 @@
> * base 10.
> */
> public String toString() {
> - return String.valueOf((int)value);
> + return Integer.toString((int)value);
> }
>
> /**
> --- old/src/share/classes/java/lang/Double.java 2009-10-07
> 12:18:04.000000000 -0700
> +++ new/src/share/classes/java/lang/Double.java 2009-10-07
> 12:18:04.000000000 -0700
> @@ -629,7 +629,7 @@
> * @see java.lang.Double#toString(double)
> */
> public String toString() {
> - return String.valueOf(value);
> + return toString(value);
> }
>
> /**
> --- old/src/share/classes/java/lang/Float.java 2009-10-07
> 12:18:05.000000000 -0700
> +++ new/src/share/classes/java/lang/Float.java 2009-10-07
> 12:18:05.000000000 -0700
> @@ -551,7 +551,7 @@
> * @see java.lang.Float#toString(float)
> */
> public String toString() {
> - return String.valueOf(value);
> + return Float.toString(value);
> }
>
> /**
> --- old/src/share/classes/java/lang/Integer.java 2009-10-07
> 12:18:06.000000000 -0700
> +++ new/src/share/classes/java/lang/Integer.java 2009-10-07
> 12:18:06.000000000 -0700
> @@ -746,7 +746,7 @@
> * base 10.
> */
> public String toString() {
> - return String.valueOf(value);
> + return toString(value);
> }
>
> /**
> --- old/src/share/classes/java/lang/Long.java 2009-10-07
> 12:18:07.000000000 -0700
> +++ new/src/share/classes/java/lang/Long.java 2009-10-07
> 12:18:07.000000000 -0700
> @@ -761,7 +761,7 @@
> * base 10.
> */
> public String toString() {
> - return String.valueOf(value);
> + return toString(value);
> }
>
> /**
> --- old/src/share/classes/java/lang/Short.java 2009-10-07
> 12:18:08.000000000 -0700
> +++ new/src/share/classes/java/lang/Short.java 2009-10-07
> 12:18:07.000000000 -0700
> @@ -170,7 +170,7 @@
> */
> public static Short valueOf(String s, int radix)
> throws NumberFormatException {
> - return new Short(parseShort(s, radix));
> + return valueOf(parseShort(s, radix));
> }
>
> /**
> @@ -282,7 +282,7 @@
> if (i < MIN_VALUE || i > MAX_VALUE)
> throw new NumberFormatException(
> "Value " + i + " out of range from input " + nm);
> - return (short)i;
> + return valueOf((short)i);
> }
>
> /**
> @@ -379,7 +379,7 @@
> * base 10.
> */
> public String toString() {
> - return String.valueOf((int)value);
> + return Integer.toString((int)value);
> }
>
> /**
> --- old/src/share/classes/java/lang/String.java 2009-10-07
> 12:18:08.000000000 -0700
> +++ new/src/share/classes/java/lang/String.java 2009-10-07
> 12:18:08.000000000 -0700
> @@ -2995,7 +2995,7 @@
> * @see java.lang.Integer#toString(int, int)
> */
> public static String valueOf(int i) {
> - return Integer.toString(i, 10);
> + return Integer.toString(i);
> }
>
> /**
> @@ -3009,7 +3009,7 @@
> * @see java.lang.Long#toString(long)
> */
> public static String valueOf(long l) {
> - return Long.toString(l, 10);
> + return Long.toString(l);
> }
>
> /**
>
More information about the core-libs-dev
mailing list