protected boolean matchAllParamTypes(Constructor<?> c, Class<?>[] paramTypes) {
		boolean notMatch = false;
		for (int i = 0; i < c.getParameterTypes().length; i++) {
			Class<?> conParamType = c.getParameterTypes()[i];
			Class<?> paramType = paramTypes[i];
			if (paramType == null) {
				// null parameter always match
				continue;
			}
			if (!equals(conParamType, paramType)) {
				// break if one doesn't match
				notMatch = true;
				break;
			}
		}
		return !notMatch;
	}