code: @Override
    public <T> T create(final Class<T> objectType, final Class[] parameterTypes, final Object... args) {
      try {
        Constructor constructor = resolveConstructor(objectType, parameterTypes);
  
        T object;
  
        if (!ArrayUtils.isEmpty(constructor.getParameterTypes())) {
          Assert.equals(ArrayUtils.nullSafeLength(constructor.getParameterTypes()), ArrayUtils.nullSafeLength(args),
            "The number of arguments ({0,number,integer}) does not match the number of parameters ({1,number,integer}) for constructor ({2}) in Class ({3})!",
              ArrayUtils.nullSafeLength(args), ArrayUtils.nullSafeLength(constructor.getParameterTypes()), constructor, objectType);
  
          object = postConstruct(objectType.cast(constructor.newInstance(args)));
        }
        else {
          object = postConstruct(objectType.cast(constructor.newInstance()), args);
        }
  
        return object;
      }
      catch (Exception e) {
        throw new ObjectInstantiationException(String.format(
          "Failed to instantiate and instance of class (%1$s) with constructor having signature (%2$s) using arguments (%3$s)!",
            ClassUtils.getName(objectType), from(parameterTypes).toString(), from(args).toString()), e);
      }
    }
docs: Creates an object given the fully qualified class name, initialized with the specified constructor arguments
  corresponding to the parameter types that specifies the exact signature of the constructor used to construct
  the object.
  
  @param <T> the Class type of the created object.
  @param objectType the Class type from which the instance is created.
  @param parameterTypes an array of Class types indicating the signature of the constructor used to create
  the object.
  @param args an array of Objects used as constructor arguments to initialize the object.
  @return a newly created object of the given class type initialized with the specified arguments.
  @throws ObjectInstantiationException if an error occurs during object creation.
  @see #create(Class, Object...)
  @see #resolveConstructor
  @see java.lang.Class
  @see java.lang.reflect.Constructor