public static Object invokeConstructor(Class<?> containingClass, Class<?>[] parameterTypes,
			Object[] args) throws RuntimeException {

		Object result = null;

		try {
			Constructor<?> constructor = locateConstructorOnClass(containingClass, parameterTypes);
			if (constructor == null) {
				throw new NoSuchMethodException("Unable to find a constructor " + "on the class " +
					containingClass + " with the given parameters");
			}

			// make sure we have access
			constructor.setAccessible(true);

			// execute the method and get the result
			result = constructor.newInstance(args);
		}
		catch (Exception e) {
			throw new RuntimeException(
				"Unable to use reflection to call " + "constructor from class: " + containingClass,
				e);
		}

		return result;
	}
Uses reflection to execute the constructor for the given class with the given parameters.
The new instance of the given class will be returned.

@param containingClass The class that contains the desired constructor.
@param parameterTypes The parameter <b>types</b> that the constructor takes.
       This value can be null or zero length if there are no parameters
       to pass
@param args The parameter values that should be passed to the constructor.
       This value can be null or zero length if there are no parameters
       to pass
@return The new class instance
@throws RuntimeException if there is a problem accessing the constructor
        using reflection.  A RuntimeException is used so that calling
        tests can avoid using a try/catch block, but will still fail
        when an error is encountered.
Ghidra/Framework/Generic/src/main/java/generic/test/TestUtils.java