question: 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 ) ; } }
target:  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;