code: public static <T> T invoke(String className, String methodName, boolean isSingleton, Object... args) {
  		Class<Object> clazz = loadClass(className);
  		try {
  			final Method method = getDeclaredMethod(clazz, methodName, getClasses(args));
  			if (null == method) {
  				throw new NoSuchMethodException(StrUtil.format("No such method: [{}]", methodName));
  			}
  			if (isStatic(method)) {
  				return ReflectUtil.invoke(null, method, args);
  			} else {
  				return ReflectUtil.invoke(isSingleton ? Singleton.get(clazz) : clazz.newInstance(), method, args);
  			}
  		} catch (Exception e) {
  			throw new UtilException(e);
  		}
  	}
docs: 执行方法<br>
  可执行Private方法，也可执行static方法<br>
  执行非static方法时，必须满足对象有默认构造方法<br>
  
  @param <T> 对象类型
  @param className 类名，完整类路径
  @param methodName 方法名
  @param isSingleton 是否为单例对象，如果此参数为false，每次执行方法时创建一个新对象
  @param args 参数，必须严格对应指定方法的参数类型和数量
  @return 返回结果