private static Object parseConst(int tag,ByteBuffer buf,ConstantPool constPool){
  int constIndex=buf.getShort() & 0xFFFF;
switch (tag) {
case 'B':
    return Byte.valueOf((byte)constPool.getIntAt(constIndex));
case 'C':
  return Character.valueOf((char)constPool.getIntAt(constIndex));
case 'D':
return Double.valueOf(constPool.getDoubleAt(constIndex));
case 'F':
return Float.valueOf(constPool.getFloatAt(constIndex));
case 'I':
return Integer.valueOf(constPool.getIntAt(constIndex));
case 'J':
return Long.valueOf(constPool.getLongAt(constIndex));
case 'S':
return Short.valueOf((short)constPool.getIntAt(constIndex));
case 'Z':
return Boolean.valueOf(constPool.getIntAt(constIndex) != 0);
case 's':
return constPool.getUTF8At(constIndex);
default :
throw new AnnotationFormatError("Invalid member-value tag in annotation: " + tag);
}
}

private static Object parseConst ( int tag , ByteBuffer buf , ConstantPool constPool ) { int constIndex = buf . getShort ( ) & 0xFFFF ; switch ( tag ) { case 'B' : return Byte . valueOf ( ( byte ) constPool . getIntAt ( constIndex ) ) ; case 'C' : return Character . valueOf ( ( char ) constPool . getIntAt ( constIndex ) ) ; case 'D' : return Double . valueOf ( constPool . getDoubleAt ( constIndex ) ) ; case 'F' : return Float . valueOf ( constPool . getFloatAt ( constIndex ) ) ; case 'I' : return Integer . valueOf ( constPool . getIntAt ( constIndex ) ) ; case 'J' : return Long . valueOf ( constPool . getLongAt ( constIndex ) ) ; case 'S' : return Short . valueOf ( ( short ) constPool . getIntAt ( constIndex ) ) ; case 'Z' : return Boolean . valueOf ( constPool . getIntAt ( constIndex ) != 0 ) ; case 's' : return constPool . getUTF8At ( constIndex ) ; default : throw new AnnotationFormatError ( "Invalid member-value tag in annotation: " + tag ) ; } }
parses the primitive or string annotation member value indicated by the specified tag byte at the current position in the specified byte buffer , resolving constant reference in the specified constant pool . the cursor of the byte buffer must point to an annotation member value of the type indicated by the specified tag , as described in the runtimevisibleannotations_attribute : u2 const_value_index ;
