diff options
author | Tom Tromey <tromey@redhat.com> | 2002-06-15 19:45:34 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2002-06-15 19:45:34 +0000 |
commit | 3e1b181a6785c3b77b1cd877a8f6759efad6cfe8 (patch) | |
tree | 6325e924516b02fb0d87553b0923dd855f975914 /libjava/java/lang/Byte.java | |
parent | 34442f32a2407deff70df24c62713044748caf84 (diff) | |
download | gcc-3e1b181a6785c3b77b1cd877a8f6759efad6cfe8.zip gcc-3e1b181a6785c3b77b1cd877a8f6759efad6cfe8.tar.gz gcc-3e1b181a6785c3b77b1cd877a8f6759efad6cfe8.tar.bz2 |
AbstractMethodError.java: Re-merged with Classpath.
* java/lang/AbstractMethodError.java: Re-merged with Classpath.
* java/lang/ArithmeticException.java: Likewise.
* java/lang/ArrayIndexOutOfBoundsException.java: Likewise.
* java/lang/ArrayStoreException.java: Likewise.
* java/lang/Byte.java: Likewise.
* java/lang/CharSequence.java: Likewise.
* java/lang/ClassCastException.java: Likewise.
* java/lang/ClassCircularityError.java: Likewise.
* java/lang/ClassFormatError.java: Likewise.
* java/lang/CloneNotSupportedException.java: Likewise.
* java/lang/Cloneable.java: Likewise.
* java/lang/Comparable.java: Likewise.
* java/lang/Compiler.java: Likewise.
* java/lang/Error.java: Likewise.
* java/lang/ExceptionInInitializerError.java: Likewise.
* java/lang/IllegalAccessError.java: Likewise.
* java/lang/IllegalAccessException.java: Likewise.
* java/lang/IllegalArgumentException.java: Likewise.
* java/lang/IllegalMonitorStateException.java: Likewise.
* java/lang/IllegalStateException.java: Likewise.
* java/lang/IllegalThreadStateException.java: Likewise.
* java/lang/IncompatibleClassChangeError.java: Likewise.
* java/lang/IndexOutOfBoundsException.java: Likewise.
* java/lang/InheritableThreadLocal.java: Likewise.
* java/lang/InstantiationError.java: Likewise.
* java/lang/InstantiationException.java: Likewise.
* java/lang/InternalError.java: Likewise.
* java/lang/InterruptedException.java: Likewise.
* java/lang/LinkageError.java: Likewise.
* java/lang/NegativeArraySizeException.java: Likewise.
* java/lang/NoClassDefFoundError.java: Likewise.
* java/lang/NoSuchFieldError.java: Likewise.
* java/lang/NoSuchFieldException.java: Likewise.
* java/lang/NoSuchMethodError.java: Likewise.
* java/lang/NoSuchMethodException.java: Likewise.
* java/lang/NullPointerException.java: Likewise.
* java/lang/NumberFormatException.java: Likewise.
* java/lang/OutOfMemoryError.java: Likewise.
* java/lang/Process.java: Likewise.
* java/lang/Runnable.java: Likewise.
* java/lang/RuntimePermission.java: Likewise.
* java/lang/SecurityException.java: Likewise.
* java/lang/Short.java: Likewise.
* java/lang/StackOverflowError.java: Likewise.
* java/lang/StringIndexOutOfBoundsException.java: Likewise.
* java/lang/ThreadDeath.java: Likewise.
* java/lang/ThreadLocal.java: Likewise.
* java/lang/UnknownError.java: Likewise.
* java/lang/UnsatisfiedLinkError.java: Likewise.
* java/lang/UnsupportedClassVersionError.java: Likewise.
* java/lang/UnsupportedOperationException.java: Likewise.
* java/lang/VerifyError.java: Likewise.
* java/lang/VirtualMachineError.java: Likewise.
* java/lang/reflect/InvocationTargetException.java: Likewise.
* java/net/BindException.java: Likewise.
* java/net/ConnectException.java: Likewise.
* java/net/MalformedURLException.java: Likewise.
* java/net/NoRouteToHostException.java: Likewise.
* java/net/ProtocolException.java: Likewise.
* java/net/SocketException.java: Likewise.
* java/net/UnknownHostException.java: Likewise.
* java/net/UnknownServiceException.java: Likewise.
From-SVN: r54656
Diffstat (limited to 'libjava/java/lang/Byte.java')
-rw-r--r-- | libjava/java/lang/Byte.java | 343 |
1 files changed, 193 insertions, 150 deletions
diff --git a/libjava/java/lang/Byte.java b/libjava/java/lang/Byte.java index eab2d53..7605ad7 100644 --- a/libjava/java/lang/Byte.java +++ b/libjava/java/lang/Byte.java @@ -1,5 +1,5 @@ /* Byte.java -- object wrapper for byte - Copyright (C) 1998, 2001 Free Software Foundation, Inc. + Copyright (C) 1998, 2001, 2002 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. - + GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU @@ -48,267 +48,310 @@ package java.lang; * @author Paul Fisher * @author John Keiser * @author Per Bothner - * @since JDK 1.0 + * @author Eric Blake <ebb9@email.byu.edu> + * @since 1.1 + * @status updated to 1.4 */ -public final class Byte extends Number implements Comparable +public final class Byte extends Number implements Comparable { - static final long serialVersionUID = -7183698231559129828L; + /** + * Compatible with JDK 1.1+. + */ + private static final long serialVersionUID = -7183698231559129828L; /** - * The minimum value a <code>byte</code> can represent is -128. + * The minimum value a <code>byte</code> can represent is -128 (or + * -2<sup>7</sup>). */ public static final byte MIN_VALUE = -128; /** - * The maximum value a <code>byte</code> can represent is 127. + * The maximum value a <code>byte</code> can represent is 127 (or + * 2<sup>7</sup> - 1). */ public static final byte MAX_VALUE = 127; /** - * The primitive type <code>byte</code> is represented by this + * The primitive type <code>byte</code> is represented by this * <code>Class</code> object. */ public static final Class TYPE = VMClassLoader.getPrimitiveClass('B'); /** * The immutable value of this Byte. + * + * @serial the wrapped byte */ private final byte value; /** - * Create a <code>Byte</code> object representing the value of the + * Create a <code>Byte</code> object representing the value of the * <code>byte</code> argument. * * @param value the value to use - */ - public Byte(byte value) + */ + public Byte(byte value) { this.value = value; } /** - * Create a <code>Byte</code> object representing the value specified - * by the <code>String</code> argument. + * Create a <code>Byte</code> object representing the value specified + * by the <code>String</code> argument * - * @param s the string to convert. + * @param s the string to convert + * @throws NumberFormatException if the String does not contain a byte + * @see #valueOf(String) */ - public Byte(String s) throws NumberFormatException + public Byte(String s) { value = parseByte(s, 10); } /** - * Return a hashcode representing this Object. - * - * <code>Byte</code>'s hash code is calculated by simply returning its - * value. + * Converts the <code>byte</code> to a <code>String</code> and assumes + * a radix of 10. * - * @return this Object's hash code. + * @param b the <code>byte</code> to convert to <code>String</code> + * @return the <code>String</code> representation of the argument */ - public int hashCode() + public static String toString(byte b) { - return value; + return String.valueOf(b); } /** - * Returns <code>true</code> if <code>obj</code> is an instance of - * <code>Byte</code> and represents the same byte value. - * @return whether these Objects are semantically equal. - */ - public boolean equals(Object obj) - { - return ((obj instanceof Byte) && (value == ((Byte)obj).byteValue())); - } - - /** - * Converts the <code>byte</code> to a <code>String</code> and assumes - * a radix of 10. - * @param i the <code>byte</code> to convert to <code>String</code> - * @return the <code>String</code> representation of the argument. - */ - public static String toString(byte i) + * Converts the specified <code>String</code> into a <code>byte</code>. + * This function assumes a radix of 10. + * + * @param s the <code>String</code> to convert + * @return the <code>byte</code> value of <code>s</code> + * @throws NumberFormatException if <code>s</code> cannot be parsed as a + * <code>byte</code> + * @see #parseByte(String) + */ + public static byte parseByte(String s) { - return Integer.toString ((int) i); + return parseByte(s, 10); } /** - * Converts the <code>Byte</code> value to a <code>String</code> and - * assumes a radix of 10. - * @return the <code>String</code> representation of this <code>Byte</code>. - */ - public String toString() - { - return Integer.toString ((int) value); - } - - /** - * Creates a new <code>Byte</code> object using the <code>String</code>, - * assuming a radix of 10. - * @param s the <code>String</code> to convert. - * @return the new <code>Byte</code>. - * @see #Byte(java.lang.String) - * @see #parseByte(java.lang.String) - * @exception NumberFormatException thrown if the <code>String</code> - * cannot be parsed as a <code>byte</code>. + * Converts the specified <code>String</code> into an <code>int</code> + * using the specified radix (base). The string must not be <code>null</code> + * or empty. It may begin with an optional '-', which will negate the answer, + * provided that there are also valid digits. Each digit is parsed as if by + * <code>Character.digit(d, radix)</code>, and must be in the range + * <code>0</code> to <code>radix - 1</code>. Finally, the result must be + * within <code>MIN_VALUE</code> to <code>MAX_VALUE</code>, inclusive. + * Unlike Double.parseDouble, you may not have a leading '+'. + * + * @param s the <code>String</code> to convert + * @param radix the radix (base) to use in the conversion + * @return the <code>String</code> argument converted to </code>byte</code> + * @throws NumberFormatException if <code>s</code> cannot be parsed as a + * <code>byte</code> */ - public static Byte valueOf(String s) throws NumberFormatException + public static byte parseByte(String s, int radix) { - return new Byte(parseByte(s)); + int i = Integer.parseInt(s, radix, false); + if ((byte) i != i) + throw new NumberFormatException(); + return (byte) i; } /** * Creates a new <code>Byte</code> object using the <code>String</code> * and specified radix (base). - * @param s the <code>String</code> to convert. - * @param radix the radix (base) to convert with. - * @return the new <code>Byte</code>. - * @see #parseByte(java.lang.String,int) - * @exception NumberFormatException thrown if the <code>String</code> - * cannot be parsed as a <code>byte</code>. - */ - public static Byte valueOf(String s, int radix) - throws NumberFormatException - { - return new Byte(parseByte(s, radix)); - } - - /** - * Converts the specified <code>String</code> into a <code>byte</code>. - * This function assumes a radix of 10. * * @param s the <code>String</code> to convert - * @return the <code>byte</code> value of the <code>String</code> - * argument. - * @exception NumberFormatException thrown if the <code>String</code> - * cannot be parsed as a <code>byte</code>. + * @param radix the radix (base) to convert with + * @return the new <code>Byte</code> + * @throws NumberFormatException if <code>s</code> cannot be parsed as a + * <code>byte</code> + * @see #parseByte(String, int) */ - public static byte parseByte(String s) throws NumberFormatException + public static Byte valueOf(String s, int radix) { - return parseByte(s, 10); + return new Byte(parseByte(s, radix)); } /** - * Converts the specified <code>String</code> into a <code>byte</code> - * using the specified radix (base). + * Creates a new <code>Byte</code> object using the <code>String</code>, + * assuming a radix of 10. * - * @param str the <code>String</code> to convert - * @param radix the radix (base) to use in the conversion - * @return the <code>String</code> argument converted to </code>byte</code>. - * @exception NumberFormatException thrown if the <code>String</code> - * cannot be parsed as a <code>byte</code>. + * @param s the <code>String</code> to convert + * @return the new <code>Byte</code> + * @throws NumberFormatException if <code>s</code> cannot be parsed as a + * <code>byte</code> + * @see #Byte(String) + * @see #parseByte(String) */ - public static byte parseByte(String str, int radix) - throws NumberFormatException + public static Byte valueOf(String s) { - int i = Integer.parseInt(str, radix); - if (i < MIN_VALUE || i > MAX_VALUE) - throw new NumberFormatException(); - return (byte) i; + return new Byte(parseByte(s, 10)); } /** * Convert the specified <code>String</code> into a <code>Byte</code>. - * The <code>String</code> may represent decimal, hexadecimal, or + * The <code>String</code> may represent decimal, hexadecimal, or * octal numbers. * - * The <code>String</code> argument is interpreted based on the leading - * characters. Depending on what the String begins with, the base will be - * interpreted differently: + * <p>The extended BNF grammar is as follows:<br> + * <pre> + * <em>DecodableString</em>: + * ( [ <code>-</code> ] <em>DecimalNumber</em> ) + * | ( [ <code>-</code> ] ( <code>0x</code> | <code>0X</code> + * | <code>#</code> ) { <em>HexDigit</em> }+ ) + * | ( [ <code>-</code> ] <code>0</code> { <em>OctalDigit</em> } ) + * <em>DecimalNumber</em>: + * <em>DecimalDigit except '0'</em> { <em>DecimalDigit</em> } + * <em>DecimalDigit</em>: + * <em>Character.digit(d, 10) has value 0 to 9</em> + * <em>OctalDigit</em>: + * <em>Character.digit(d, 8) has value 0 to 7</em> + * <em>DecimalDigit</em>: + * <em>Character.digit(d, 16) has value 0 to 15</em> + * </pre> + * Finally, the value must be in the range <code>MIN_VALUE</code> to + * <code>MAX_VALUE</code>, or an exception is thrown. * - * <table> - * <tr><th>Leading<br>Characters</th><th>Base</th></tr> - * <tr><td>#</td><td>16</td></tr> - * <tr><td>0x</td><td>16</td></tr> - * <tr><td>0X</td><td>16</td></tr> - * <tr><td>0</td><td>8</td></tr> - * <tr><td>Anything<br>Else</td><td>10</td></tr> - * </table> - * - * @param str the <code>String</code> to interpret. - * @return the value of the String as a <code>Byte</code>. - * @exception NumberFormatException thrown if the <code>String</code> - * cannot be parsed as a <code>byte</code>. + * @param s the <code>String</code> to interpret + * @return the value of the String as a <code>Byte</code> + * @throws NumberFormatException if <code>s</code> cannot be parsed as a + * <code>byte</code> + * @throws NullPointerException if <code>s</code> is null + * @see Integer#decode(String) */ - public static Byte decode(String str) throws NumberFormatException + public static Byte decode(String s) { - int i = (Integer.decode(str)).intValue(); - if (i < MIN_VALUE || i > MAX_VALUE) + int i = Integer.parseInt(s, 10, true); + if ((byte) i != i) throw new NumberFormatException(); return new Byte((byte) i); } - - /** Return the value of this <code>Byte</code> as an <code>short</code>. - ** @return the value of this <code>Byte</code> as an <code>short</code>. - **/ + + /** + * Return the value of this <code>Byte</code>. + * + * @return the byte value + */ public byte byteValue() { return value; } - /** Return the value of this <code>Byte</code> as an <code>short</code>. - ** @return the value of this <code>Byte</code> as an <code>short</code>. - **/ + /** + * Return the value of this <code>Byte</code> as a <code>short</code>. + * + * @return the short value + */ public short shortValue() { return value; } - /** Return the value of this <code>Byte</code> as an <code>int</code>. - ** @return the value of this <code>Byte</code> as an <code>int</code>. - **/ + /** + * Return the value of this <code>Byte</code> as an <code>int</code>. + * + * @return the int value + */ public int intValue() { return value; } - /** Return the value of this <code>Byte</code> as a <code>long</code>. - ** @return the value of this <code>Byte</code> as a <code>long</code>. - **/ + /** + * Return the value of this <code>Byte</code> as a <code>long</code>. + * + * @return the long value + */ public long longValue() { return value; } - /** Return the value of this <code>Byte</code> as a <code>float</code>. - ** @return the value of this <code>Byte</code> as a <code>float</code>. - **/ + /** + * Return the value of this <code>Byte</code> as a <code>float</code>. + * + * @return the float value + */ public float floatValue() { return value; } - /** Return the value of this <code>Byte</code> as a <code>double</code>. - ** @return the value of this <code>Byte</code> as a <code>double</code>. - **/ + /** + * Return the value of this <code>Byte</code> as a <code>double</code>. + * + * @return the double value + */ public double doubleValue() { return value; } - + /** - * Compare two Bytes numerically by comparing their - * <code>byte</code> values. - * @return a positive value if this <code>Byte</code> is greater - * in value than the argument <code>Byte</code>; a negative value - * if this <code>Byte</code> is smaller in value than the argument - * <code>Byte</code>; and <code>0</code>, zero, if this - * <code>Byte</code> is equal in value to the argument - * <code>Byte</code>. + * Converts the <code>Byte</code> value to a <code>String</code> and + * assumes a radix of 10. + * + * @return the <code>String</code> representation of this <code>Byte</code> + * @see Integer#toString() + */ + public String toString() + { + return String.valueOf(value); + } + + /** + * Return a hashcode representing this Object. <code>Byte</code>'s hash + * code is simply its value. + * + * @return this Object's hash code + */ + public int hashCode() + { + return value; + } + + /** + * Returns <code>true</code> if <code>obj</code> is an instance of + * <code>Byte</code> and represents the same byte value. + * + * @param obj the object to compare + * @return whether these Objects are semantically equal + */ + public boolean equals(Object obj) + { + return obj instanceof Byte && value == ((Byte) obj).value; + } + + /** + * Compare two Bytes numerically by comparing their <code>byte</code> values. + * The result is positive if the first is greater, negative if the second + * is greater, and 0 if the two are equal. + * + * @param b the Byte to compare + * @return the comparison + * @since 1.2 */ public int compareTo(Byte b) { - return (int)(value - b.byteValue()); + return value - b.value; } - + /** - * Behaves like <code>compareTo(java.lang.Byte)</code> unless the Object - * is not a <code>Byte</code>. Then it throws a - * <code>ClassCastException</code>. - * @exception ClassCastException if the argument is not a - * <code>Byte</code>. + * Behaves like <code>compareTo(Byte)</code> unless the Object + * is not a <code>Byte</code>. + * + * @param o the object to compare + * @return the comparison + * @throws ClassCastException if the argument is not a <code>Byte</code> + * @see #compareTo(Byte) + * @see Comparable + * @since 1.2 */ public int compareTo(Object o) { - return compareTo((Byte)o); + return compareTo((Byte) o); } } |