return new Integer(((ConstantInteger) c).getBytes());
return  (Integer)((ConstantInteger) c).getBytes();
	private Object readAnnotationValue(DataInputStream bytes)			throws IOException {		try {		char tag = (char) bytes.readUnsignedByte();		if (DEBUG)			System.out.println("tag: " + tag);		switch (tag) {		case '[':		{			int sz = bytes.readUnsignedShort();			if (DEBUG)				System.out.println("Array of " + sz + " entries");			Object[] result = new Object[sz];			for (int i = 0; i < sz; i++)				result[i] = readAnnotationValue(bytes);			return result;		}		case 'B':		case 'C':		case 'D':		case 'F':		case 'I':		case 'J':		case 'S':		case 'Z':		case 's':		case 'c':			int cp_index = bytes.readUnsignedShort();			Constant c = getConstantPool().getConstant(cp_index);			switch (tag) {			case 'B':				return new Byte((byte) ((ConstantInteger) c).getBytes());			case 'C':				return new Character((char) ((ConstantInteger) c).getBytes());			case 'D':				return new Double(((ConstantDouble) c).getBytes());			case 'F':				return new Float(((ConstantFloat) c).getBytes());			case 'I':				return new Integer(((ConstantInteger) c).getBytes());			case 'J':				return new Long(((ConstantLong) c).getBytes());			case 'S':				return new Character((char) ((ConstantInteger) c).getBytes());			case 'Z':				return Boolean.valueOf(((ConstantInteger) c).getBytes() != 0);			case 's':				return ((ConstantUtf8) c).getBytes();			case 'c':				String cName = ((ConstantUtf8)c).getBytes().replace('/','.');				if (cName.startsWith("L") && cName.endsWith(";"))					cName = cName.substring(1,cName.length()-1);				if (DEBUG) System.out.println("cName: " + cName);				return cName;			default:				if (DEBUG) System.out.println("Impossible");				throw new IllegalStateException("Impossible");			}		case '@':			throw new IllegalArgumentException("Not ready to handle annotations as elements of annotations");		case 'e':			{			int cp1= bytes.readUnsignedShort();			ConstantUtf8 c1 = (ConstantUtf8) getConstantPool().getConstant(cp1);			String cName = c1.getBytes().replace('/','.');			if (cName.startsWith("L") && cName.endsWith(";"))				cName = cName.substring(1,cName.length()-1);			int cp2= bytes.readUnsignedShort();			ConstantUtf8 c2 = (ConstantUtf8) getConstantPool().getConstant(cp2);			String result = cName +"." + c2.getBytes();			// System.out.println(result);			return result;			}		default:			if (DEBUG) System.out.println("Unexpected tag of " + tag);			throw new IllegalArgumentException("Unexpected tag of " + tag);		}		} catch (RuntimeException e) {			if (DEBUG) {			System.out.println("Problem processing annotation " + e.getMessage());			e.printStackTrace();			}			throw e;		}	}