docs: private AnnotationInfo readAnnotation() throws IOException {
          // Lcom/xyz/Annotation; -> Lcom.xyz.Annotation;
          final String annotationClassName = getConstantPoolClassDescriptor(
                  inputStreamOrByteBuffer.readUnsignedShort());
          final int numElementValuePairs = inputStreamOrByteBuffer.readUnsignedShort();
          AnnotationParameterValueList paramVals = null;
          if (numElementValuePairs > 0) {
              paramVals = new AnnotationParameterValueList(numElementValuePairs);
              for (int i = 0; i < numElementValuePairs; i++) {
                  final String paramName = getConstantPoolString(inputStreamOrByteBuffer.readUnsignedShort());
                  final Object paramValue = readAnnotationElementValue();
                  paramVals.add(new AnnotationParameterValue(paramName, paramValue));
              }
          }
          return new AnnotationInfo(annotationClassName, paramVals);
      }