Byte.java revision 1f07ea29bc2d334c55c16227582a7795b8c117c1
1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage java.lang; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/** 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The wrapper for the primitive type {@code byte}. 22f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 23f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @since 1.1 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 25f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilsonpublic final class Byte extends Number implements Comparable<Byte> { 26f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private static final long serialVersionUID = -7183698231559129828L; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The value which the receiver represents. 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private final byte value; 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The maximum {@code Byte} value, 2<sup>7</sup>-1. 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final byte MAX_VALUE = (byte) 0x7F; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The minimum {@code Byte} value, -2<sup>7</sup>. 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final byte MIN_VALUE = (byte) 0x80; 43f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The number of bits needed to represent a {@code Byte} value in two's 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * complement form. 47f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 48f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @since 1.5 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final int SIZE = 8; 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The {@link Class} object that represents the primitive type {@code byte}. 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @SuppressWarnings("unchecked") 56726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch public static final Class<Byte> TYPE 57726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch = (Class<Byte>) byte[].class.getComponentType(); 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Note: This can't be set to "byte.class", since *that* is 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // defined to be "java.lang.Byte.TYPE"; 60f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Constructs a new {@code Byte} with the specified primitive byte value. 63f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param value 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the primitive byte value to store in the new instance. 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Byte(byte value) { 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project this.value = value; 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Constructs a new {@code Byte} from the specified string. 73f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param string 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the string representation of a single byte value. 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws NumberFormatException 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if {@code string} can not be decoded into a byte value. 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #parseByte(String) 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public Byte(String string) throws NumberFormatException { 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project this(parseByte(string)); 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Gets the primitive value of this byte. 86f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return this object's primitive value. 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public byte byteValue() { 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return value; 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Compares this object to the specified byte object to determine their 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * relative order. 97f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param object 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the byte object to compare this object to. 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a negative value if the value of this byte is less than the value 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * of {@code object}; 0 if the value of this byte and the value of 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code object} are equal; a positive value if the value of this 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * byte is greater than the value of {@code object}. 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see java.lang.Comparable 105f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @since 1.2 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int compareTo(Byte object) { 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return value > object.value ? 1 : (value < object.value ? -1 : 0); 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Parses the specified string and returns a {@code Byte} instance if the 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * string can be decoded into a single byte value. The string may be an 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * optional minus sign "-" followed by a hexadecimal ("0x..." or "#..."), 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * octal ("0..."), or decimal ("...") representation of a byte. 116f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param string 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * a string representation of a single byte value. 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a {@code Byte} containing the value represented by {@code string}. 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws NumberFormatException 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if {@code string} can not be parsed as a byte value. 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static Byte decode(String string) throws NumberFormatException { 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int intValue = Integer.decode(string).intValue(); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte result = (byte) intValue; 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (result == intValue) { 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return valueOf(result); 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1291f07ea29bc2d334c55c16227582a7795b8c117c1Elliott Hughes throw new NumberFormatException("Value out of range for byte: \"" + string + "\""); 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public double doubleValue() { 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return value; 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Compares this object with the specified object and indicates if they are 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * equal. In order to be equal, {@code object} must be an instance of 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code Byte} and have the same byte value as this object. 141f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param object 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the object to compare this byte with. 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return {@code true} if the specified object is equal to this 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code Byte}; {@code false} otherwise. 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean equals(Object object) { 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return (object == this) || (object instanceof Byte) 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project && (value == ((Byte) object).value); 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public float floatValue() { 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return value; 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int hashCode() { 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return value; 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int intValue() { 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return value; 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public long longValue() { 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return value; 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Parses the specified string as a signed decimal byte value. The ASCII 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * character \u002d ('-') is recognized as the minus sign. 176f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param string 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the string representation of a single byte value. 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the primitive byte value represented by {@code string}. 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws NumberFormatException 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if {@code string} is {@code null}, has a length of zero or 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * can not be parsed as a byte value. 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static byte parseByte(String string) throws NumberFormatException { 1851f07ea29bc2d334c55c16227582a7795b8c117c1Elliott Hughes return parseByte(string, 10); 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Parses the specified string as a signed byte value using the specified 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * radix. The ASCII character \u002d ('-') is recognized as the minus sign. 191f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param string 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the string representation of a single byte value. 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param radix 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the radix to use when parsing. 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return the primitive byte value represented by {@code string} using 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code radix}. 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws NumberFormatException 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if {@code string} is {@code null} or has a length of zero, 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code radix < Character.MIN_RADIX}, 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code radix > Character.MAX_RADIX}, or if {@code string} 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * can not be parsed as a byte value. 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 2041f07ea29bc2d334c55c16227582a7795b8c117c1Elliott Hughes public static byte parseByte(String string, int radix) throws NumberFormatException { 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int intValue = Integer.parseInt(string, radix); 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte result = (byte) intValue; 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (result == intValue) { 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return result; 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 2101f07ea29bc2d334c55c16227582a7795b8c117c1Elliott Hughes throw new NumberFormatException("Value out of range for byte: \"" + string + "\""); 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public short shortValue() { 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return value; 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String toString() { 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return Integer.toString(value); 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a string containing a concise, human-readable description of the 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * specified byte value. 226f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param value 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the byte to convert to a string. 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a printable representation of {@code value}. 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static String toString(byte value) { 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return Integer.toString(value); 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Parses the specified string as a signed decimal byte value. 237f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param string 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the string representation of a single byte value. 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a {@code Byte} instance containing the byte value represented by 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code string}. 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws NumberFormatException 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if {@code string} is {@code null}, has a length of zero or 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * can not be parsed as a byte value. 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #parseByte(String) 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static Byte valueOf(String string) throws NumberFormatException { 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return valueOf(parseByte(string)); 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Parses the specified string as a signed byte value using the specified 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * radix. 254f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param string 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the string representation of a single byte value. 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param radix 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the radix to use when parsing. 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a {@code Byte} instance containing the byte value represented by 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code string} using {@code radix}. 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws NumberFormatException 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * if {@code string} is {@code null} or has a length of zero, 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code radix < Character.MIN_RADIX}, 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * {@code radix > Character.MAX_RADIX}, or if {@code string} 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * can not be parsed as a byte value. 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @see #parseByte(String, int) 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 2681f07ea29bc2d334c55c16227582a7795b8c117c1Elliott Hughes public static Byte valueOf(String string, int radix) throws NumberFormatException { 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return valueOf(parseByte(string, radix)); 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 271f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Returns a {@code Byte} instance for the specified byte value. 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <p> 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * If it is not necessary to get a new {@code Byte} instance, it is 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * recommended to use this method instead of the constructor, since it 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * maintains a cache of instances which may result in better performance. 278f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @param b 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the byte value to store in the instance. 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @return a {@code Byte} instance containing {@code b}. 282f5597e626ecf7949d249dea08c1a2964d890ec11Jesse Wilson * @since 1.5 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static Byte valueOf(byte b) { 285726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch return VALUES[b + 128]; 286726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch } 287726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch 288726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch /** 289726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch * A cache of instances used by {@link Byte#valueOf(byte)} and auto-boxing 290726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch */ 291726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch private static final Byte[] VALUES = new Byte[256]; 292726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch 293726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch static { 294726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch for (int i = -128; i < 128; i++) { 295726ac583d69b37db03c6279af5b36df7b837ede1Joshua Bloch VALUES[i + 128] = new Byte((byte) i); 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 299