docs: public T newInstance(Object... parameters) {
          Constructor<T> constructor = m_constructor;
          if (m_loadConstructor) {
              Class<?>[] parameterTypes = new Class[parameters.length];
              for (int i = 0; i < parameters.length; ++i) {
                  parameterTypes[i] = parameters[i] == null ? null : parameters[i].getClass();
              }
              constructor = findConstructor(parameterTypes);
          }
          if (constructor != null) {
              try {
                  return constructor.newInstance(parameters);
              } catch (InstantiationException | IllegalAccessException | IllegalArgumentException
                      | InvocationTargetException e) {
                  m_errorHandler.handle(
                          "Unable to construct " + m_proClass.getName() + " with parameters: "
                                  + Arrays.toString(parameters),
                          e instanceof InvocationTargetException ? e.getCause() : e);
              }
          }
          return null;
      }