code: private static <T> T invokeConstructor( final Class<T>     desiredClass,
                                              final Object[]     args,
                                              final Class<?>[]   parameterTypes )
          throws
              UtilException
      {
          try
          {
              //
              //    We need to instantiate our constructor object, given
              //    the parameter types, that is, it's method signature.
              //
              Constructor<T>    constructor;
              constructor = desiredClass.getConstructor( parameterTypes );
  
  
              //
              //    Finally invoke the method we want on the object with
              //    the appropriate arguments.
              //
              return constructor.newInstance( args );
          }
          catch ( Throwable    ex )
          {
              //
              //    We could fail to invoke a method for many reasons.
              //
              //    The constructor we request may not even exist.  The
              //    parameter types we asked for may be wrong (i.e, we
              //    requested the wrong method signature.)
              //
              throw new InvokerException()
                          .failedToInvokeConstructor( desiredClass,
                                                      parameterTypes,
                                                      ex );
          }
      }
docs: We have an object and a method name, but in order to invoke
  a method on an object, we need the object's Class (type).
  
  Given this Class we can then check that such a method exists
  and throw an exception if it doesn't.
  
  @param desiredClass to invoke method on
  @param args to pass
  @param parameterTypes of args
  @param <T> type of object
  @return object
  @throws net.crowmagnumb.util.UtilException if problem