private static Object parseClassValue(ByteBuffer buf,ConstantPool constPool,Class<?> container){
  int classIndex=buf.getShort() & 0xFFFF;
  try {
    try {
      String sig=constPool.getUTF8At(classIndex);
      return parseSig(sig,container);
    }
 catch (    IllegalArgumentException ex) {
      return constPool.getClassAt(classIndex);
    }
  }
 catch (  NoClassDefFoundError e) {
    return new TypeNotPresentExceptionProxy("[unknown]",e);
  }
catch (  TypeNotPresentException e) {
    return new TypeNotPresentExceptionProxy(e.typeName(),e.getCause());
  }
}

private static Object parseClassValue ( ByteBuffer buf , ConstantPool constPool , Class < ? > container ) { int classIndex = buf . getShort ( ) & 0xFFFF ; try { try { String sig = constPool . getUTF8At ( classIndex ) ; return parseSig ( sig , container ) ; } catch ( IllegalArgumentException ex ) { return constPool . getClassAt ( classIndex ) ; } } catch ( NoClassDefFoundError e ) { return new TypeNotPresentExceptionProxy ( "[unknown]" , e ) ; } catch ( TypeNotPresentException e ) { return new TypeNotPresentExceptionProxy ( e . typeName ( ) , e . getCause ( ) ) ; } }
parses the class member value at the current position in the specified byte buffer , resolving constant references in the specified constant pool . the cursor of the byte buffer must point to a " class info index " as described in the runtimevisibleannotations_attribute : u2 class_info_index ;
