docs: private Constant readConstant() throws InvalidClassFileFormatException, IOException {
          int tag = in.readUnsignedByte();
          if (tag < 0 || tag >= CONSTANT_FORMAT_MAP.length) {
              throw new InvalidClassFileFormatException(expectedClassDescriptor, codeBaseEntry);
          }
          String format = CONSTANT_FORMAT_MAP[tag];
          if (format == null) {
              throw new InvalidClassFileFormatException(expectedClassDescriptor, codeBaseEntry);
          }
  
          Object[] data = new Object[format.length()];
          for (int i = 0; i < format.length(); i++) {
              char spec = format.charAt(i);
              switch (spec) {
              case '8':
                  data[i] = in.readUTF();
                  break;
              case 'I':
                  data[i] = in.readInt();
                  break;
              case 'F':
                  data[i] = Float.valueOf(in.readFloat());
                  break;
              case 'L':
                  data[i] = in.readLong();
                  break;
              case 'D':
                  data[i] = Double.valueOf(in.readDouble());
                  break;
              case 'i':
                  data[i] = in.readUnsignedShort();
                  break;
              case 'b':
                  data[i] = in.readUnsignedByte();
                  break;
              default:
                  throw new IllegalStateException();
              }
          }
  
          return new Constant(tag, data);
      }