@SuppressWarnings("DuplicateBranchesInSwitch")
  private int readConstant() throws IOException, ClassFormatException {
    int tag = myInput.readByte();
    switch (tag) {
      case 1 -> {
        String utf8String = myInput.readUTF();
        myCallback.onUtf8(utf8String); // Utf8
      }
      case 3 -> // Integer
        myInput.skipBytes(4); // Integer value
      case 4 -> // Float
        myInput.skipBytes(4); // Float value
      case 5 -> {// Long
        myInput.skipBytes(8); // Long value
        return 2;
      }
      case 6 -> { // Double
        myInput.skipBytes(8); // Double value
        return 2;
      }
      case 7 -> // Class
        myInput.skipBytes(2); // Class index
      case 8 -> // String
        myInput.skipBytes(2); // String index
      case 9 -> { // Fieldref
        myInput.skipBytes(4); // Class index + NameAndType index
      }
      case 10 -> { // Methodref
        myInput.skipBytes(4); // Class index + NameAndType index
      }
      case 11 -> { // InterfaceMethodref
        myInput.skipBytes(4); // Class index + NameAndType index
      }
      case 12 -> { // NameAndType
        myInput.skipBytes(4); // Name index + Type index
      }
      case 15 -> { // MethodHandle
        myInput.skipBytes(3); // Reference kind + Reference index
      }
      case 16 -> // MethodType
        myInput.skipBytes(2); // Descriptor index
      case 17 -> { // Dynamic
        myInput.skipBytes(4); // Bootstrap method index + NameAndType index
      }
      case 18 -> { // InvokeDynamic
        myInput.skipBytes(4); // Bootstrap method index + NameAndType index
      }
      case 19 -> // Module
        myInput.skipBytes(2); // Name index
      case 20 -> // Package
        myInput.skipBytes(2); // Name index
      default -> throw new ClassFormatException("Invalid constant pool entry tag: " + tag);
    }
    return 1;
  }
@SuppressWarnings("DuplicateBranchesInSwitch")
  private int readConstant()