for (int i = 0; i < b.length; i++) System.out.print(Integer.toString((b[i] & 0xff), 16)
for (byte aB : b) System.out.print(Integer.toString((aB & 0xff), 16)
	public void visit(Attribute obj) {		try {			if (obj instanceof Unknown) {				String name = ((Unknown) obj).getName();				if (DEBUG)					System.out.println("In " + getDottedClassName() + " found "							+ name);				byte[] b = ((Unknown) obj).getBytes();				DataInputStream bytes = new DataInputStream(						new ByteArrayInputStream(b));				if (name.equals("RuntimeVisibleAnnotations")						|| name.equals("RuntimeInvisibleAnnotations")) {					int numAnnotations = bytes.readUnsignedShort();					if (DEBUG)						System.out.println("# of annotations: "								+ numAnnotations);					for (int i = 0; i < numAnnotations; i++) {						String annotationName = getAnnotationName(bytes);						int numPairs = bytes.readUnsignedShort();						Map<String, Object> values = readAnnotationValues(								bytes, numPairs);						visitAnnotation(annotationName, values, name								.equals("RuntimeVisibleAnnotations"));					}				} else if (name.equals("RuntimeVisibleParameterAnnotations")						|| name.equals("RuntimeInvisibleParameterAnnotations")) {					int numParameters = bytes.readUnsignedByte();					for (int p = 0; p < numParameters; p++) {						int numAnnotations = bytes.readUnsignedShort();						if (DEBUG)							System.out.println("# of annotations: "									+ numAnnotations);						for (int i = 0; i < numAnnotations; i++) {							String annotationName = getAnnotationName(bytes);							int numPairs = bytes.readUnsignedShort();							Map<String, Object> values = readAnnotationValues(									bytes, numPairs);							visitParameterAnnotation(									p,									annotationName,									values,									name.equals("RuntimeVisibleParameterAnnotations"));						}					}				}				if (DEBUG) {					for (int i = 0; i < b.length; i++)						System.out.print(Integer.toString((b[i] & 0xff), 16)								+ " ");					System.out.println();				}			}		} catch (Exception e) {			// ignore		}	}