docs: @SuppressWarnings("unchecked")
  	public static <T> T invoke(Object obj, Method method, Object... args) throws UtilException {
  		if (false == method.isAccessible()) {
  			method.setAccessible(true);
  		}
  
  		try {
  			return (T) method.invoke(ClassUtil.isStatic(method) ? null : obj, args);
  		} catch (Exception e) {
  			throw new UtilException(e);
  		}
  	}