private boolean matchParams(Class<?>[] parInput, Class<?>[] parDefined) {

		// make sure both methods have the same number of arguments
		if (Array.getLength(parInput) != Array.getLength(parDefined)){
			return false;
		}

		if (Array.getLength(parInput)  == 0)
			// no parameters to match
			return true;

		for (int i = 0; i < Array.getLength(parInput); i++) {
			if (!matchPair(parInput[i], parDefined[i])){
				return false;
			}
		}
		return true;
	}