Byte represent primitive byte
* values.
*
* Additionally, this class provides various helper functions and variables
* useful to bytes.
*
* @author Paul Fisher
* @author John Keiser
* @author Per Bothner
* @author Eric Blake byte can represent is -128 (or
* -27).
*/
public static final byte MIN_VALUE = -128;
/**
* The maximum value a byte can represent is 127 (or
* 27 - 1).
*/
public static final byte MAX_VALUE = 127;
/**
* The primitive type byte is represented by this
* Class 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 Byte object representing the value of the
* byte argument.
*
* @param value the value to use
*/
public Byte(byte value)
{
this.value = value;
}
/**
* Create a Byte object representing the value specified
* by the String argument
*
* @param s the string to convert
* @throws NumberFormatException if the String does not contain a byte
* @see #valueOf(String)
*/
public Byte(String s)
{
value = parseByte(s, 10);
}
/**
* Converts the byte to a String and assumes
* a radix of 10.
*
* @param b the byte to convert to String
* @return the String representation of the argument
*/
public static String toString(byte b)
{
return String.valueOf(b);
}
/**
* Converts the specified String into a byte.
* This function assumes a radix of 10.
*
* @param s the String to convert
* @return the byte value of s
* @throws NumberFormatException if s cannot be parsed as a
* byte
* @see #parseByte(String)
*/
public static byte parseByte(String s)
{
return parseByte(s, 10);
}
/**
* Converts the specified String into an int
* using the specified radix (base). The string must not be null
* 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
* Character.digit(d, radix), and must be in the range
* 0 to radix - 1. Finally, the result must be
* within MIN_VALUE to MAX_VALUE, inclusive.
* Unlike Double.parseDouble, you may not have a leading '+'.
*
* @param s the String to convert
* @param radix the radix (base) to use in the conversion
* @return the String argument converted to byte
* @throws NumberFormatException if s cannot be parsed as a
* byte
*/
public static byte parseByte(String s, int radix)
{
int i = Integer.parseInt(s, radix, false);
if ((byte) i != i)
throw new NumberFormatException();
return (byte) i;
}
/**
* Creates a new Byte object using the String
* and specified radix (base).
*
* @param s the String to convert
* @param radix the radix (base) to convert with
* @return the new Byte
* @throws NumberFormatException if s cannot be parsed as a
* byte
* @see #parseByte(String, int)
*/
public static Byte valueOf(String s, int radix)
{
return new Byte(parseByte(s, radix));
}
/**
* Creates a new Byte object using the String,
* assuming a radix of 10.
*
* @param s the String to convert
* @return the new Byte
* @throws NumberFormatException if s cannot be parsed as a
* byte
* @see #Byte(String)
* @see #parseByte(String)
*/
public static Byte valueOf(String s)
{
return new Byte(parseByte(s, 10));
}
/**
* Convert the specified String into a Byte.
* The String may represent decimal, hexadecimal, or
* octal numbers.
*
* The extended BNF grammar is as follows:
*
* DecodableString: * ( [* Finally, the value must be in the range-] DecimalNumber ) * | ( [-] (0x|0X* |#) { HexDigit }+ ) * | ( [-]0{ OctalDigit } ) * DecimalNumber: * DecimalDigit except '0' { DecimalDigit } * DecimalDigit: * Character.digit(d, 10) has value 0 to 9 * OctalDigit: * Character.digit(d, 8) has value 0 to 7 * DecimalDigit: * Character.digit(d, 16) has value 0 to 15 *
MIN_VALUE to
* MAX_VALUE, or an exception is thrown.
*
* @param s the String to interpret
* @return the value of the String as a Byte
* @throws NumberFormatException if s cannot be parsed as a
* byte
* @throws NullPointerException if s is null
* @see Integer#decode(String)
*/
public static Byte decode(String s)
{
int i = Integer.parseInt(s, 10, true);
if ((byte) i != i)
throw new NumberFormatException();
return new Byte((byte) i);
}
/**
* Return the value of this Byte.
*
* @return the byte value
*/
public byte byteValue()
{
return value;
}
/**
* Return the value of this Byte as a short.
*
* @return the short value
*/
public short shortValue()
{
return value;
}
/**
* Return the value of this Byte as an int.
*
* @return the int value
*/
public int intValue()
{
return value;
}
/**
* Return the value of this Byte as a long.
*
* @return the long value
*/
public long longValue()
{
return value;
}
/**
* Return the value of this Byte as a float.
*
* @return the float value
*/
public float floatValue()
{
return value;
}
/**
* Return the value of this Byte as a double.
*
* @return the double value
*/
public double doubleValue()
{
return value;
}
/**
* Converts the Byte value to a String and
* assumes a radix of 10.
*
* @return the String representation of this Byte
* @see Integer#toString()
*/
public String toString()
{
return String.valueOf(value);
}
/**
* Return a hashcode representing this Object. Byte's hash
* code is simply its value.
*
* @return this Object's hash code
*/
public int hashCode()
{
return value;
}
/**
* Returns true if obj is an instance of
* Byte 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 byte 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 value - b.value;
}
/**
* Behaves like compareTo(Byte) unless the Object
* is not a Byte.
*
* @param o the object to compare
* @return the comparison
* @throws ClassCastException if the argument is not a Byte
* @see #compareTo(Byte)
* @see Comparable
* @since 1.2
*/
public int compareTo(Object o)
{
return compareTo((Byte) o);
}
}