docs: @Override
      public void parse(ClassInfo.Builder builder) throws InvalidClassFileFormatException {
          parse((ClassNameAndSuperclassInfo.Builder) builder);
  
          final List<FieldDescriptor> fieldDescriptorList = new LinkedList<>();
          final List<MethodDescriptor> methodDescriptorList = new LinkedList<>();
          final TreeSet<ClassDescriptor> referencedClassSet = new TreeSet<>();
          javaClass.accept(new AnnotationVisitor() {
              @Override
              public void visit(Method obj) {
                  methodDescriptorList.add(parseMethod(obj));
              }
  
              @Override
              public void visit(Field obj) {
                  fieldDescriptorList.add(parseField(obj));
              }
  
              @Override
              public void visit(ConstantClass obj) {
                  @SlashedClassName
                  String className = obj.getBytes(javaClass.getConstantPool());
                  if (className.indexOf('[') >= 0) {
                      ClassParser.extractReferencedClassesFromSignature(referencedClassSet, className);
                  } else if (ClassName.isValidClassName(className)) {
                      referencedClassSet.add(DescriptorFactory.instance().getClassDescriptor(className));
                  }
              }
  
              @Override
              public void visit(ConstantNameAndType obj) {
                  String signature = obj.getSignature(javaClass.getConstantPool());
                  ClassParser.extractReferencedClassesFromSignature(referencedClassSet, signature);
              }
          });
  
      }