docs: public static <T> T newInstance(Class<T> clazz, Object... params) throws UtilException {
  		if (ArrayUtil.isEmpty(params)) {
  			final Constructor<T> constructor = getConstructor(clazz);
  			try {
  				return constructor.newInstance();
  			} catch (Exception e) {
  				throw new UtilException(e, "Instance class [{}] error!", clazz);
  			}
  		}
  
  		final Class<?>[] paramTypes = ClassUtil.getClasses(params);
  		final Constructor<T> constructor = getConstructor(clazz, paramTypes);
  		if (null == constructor) {
  			throw new UtilException("No Constructor matched for parameter types: [{}]", new Object[] { paramTypes });
  		}
  		try {
  			return constructor.newInstance(params);
  		} catch (Exception e) {
  			throw new UtilException(e, "Instance class [{}] error!", clazz);
  		}
  	}