code: @SuppressWarnings("unchecked")
      public static <R> R invoke(Object obj, String methodName, Class<?>[] parameterTypes,
                                 Object... args) {
          Assert.isFalse(
              CollectionUtil.safeIsEmpty(parameterTypes) ^ CollectionUtil.safeIsEmpty(args),
              "方法参数类型列表必须和方法参数列表一致");
          Assert.isTrue(parameterTypes == null || parameterTypes.length == args.length,
              "方法参数类型列表长度必须和方法参数列表长度一致");
          Method method;
          if (obj instanceof Class) {
              method = getMethod((Class) obj, methodName, parameterTypes);
          } else {
              method = getMethod(obj.getClass(), methodName, parameterTypes);
          }
          return invoke(obj, method, args);
      }
docs: 调用指定对象的指定方法
  @param obj 指定对象，不能为空，如果要调用的方法为静态方法那么传入Class对象
  @param methodName 要调用的方法名，不能为空
  @param parameterTypes  方法参数类型，方法没有参数请传null
  @param args 参数
  @param <R> 结果类型
  @return 调用结果