docs: @Override
    public T decode(final String s) {
      checkNotNull(s);
      try {
        return constructor.newInstance(s);
      } catch (final IllegalAccessException iae) {
        throw new ConversionException("Cannot access a single-string constructor for type " + type,
            iae);
      } catch (final InstantiationException ie) {
        throw new ConversionException(
            "Cannot instantiate " + type + ", probably because it is not concrete", ie);
      } catch (final InvocationTargetException ite) {
        throw new ConversionException("Exception thrown in constructor for " + type, ite);
      } catch (final ExceptionInInitializerError eiie) {
        throw new ConversionException(
            "Exception thrown when initializing classes for construction of " + type, eiie);
      }
    }