code: public void invoke(String className, String methodName, Object[] parameters, Class[] parameterTypes)
          throws Throwable {
  
          Class clazz = createClass(className);
          Object object = createObject(className, clazz);
          callMethodOn(clazz, object, methodName, parameters, parameterTypes);
      }
docs: Invokes a method on an object. Will not dynamically determine parameter types.
  <p>
  May be used to call methods with polymorphous parameters, i.e. methods
  taking parameters such as List, Map, etc (that are abstract).
  <p>
  Example:
  <pre>
  // Method name
  String methodName = "assignList"; // predefined
  
  // Parameter types and values
  Object[] parameters = { new Vector&lt;String&gt;() };
  Class[] types = { List.class };
  
  // Method call
  callMethodOn(object, methodName, parameters, types);
  </pre>
  <p>
  @param className name of class in classpath
  @param methodName name of (public) method
  @param parameters an array of values matching the parameterTypes array
  @param parameterTypes an array of parameter types (Class) matching parameters array
  @throws ClassNotFoundException - if method is not found, method is not public, parameters does not match, etc.