docs: @Override
      public Class<?> loadClass(final boolean ignoreExceptions) {
          getTypeSignature();
          if (typeSignature instanceof BaseTypeSignature) {
              return ((BaseTypeSignature) typeSignature).getType();
          } else if (typeSignature instanceof ClassRefTypeSignature) {
              return ((ClassRefTypeSignature) typeSignature).loadClass(ignoreExceptions);
          } else {
              throw new IllegalArgumentException("Got unexpected type " + typeSignature.getClass().getName()
                      + " for ref type signature: " + typeDescriptorStr);
          }
      }