code: static MultiMap<String> resolveParameters(Method method, Object[] args) {
      MultiMap<String> parameterMap = new MultiValueMap<>(Optional.ofNullable(args).map(ary -> ary.length).orElse(0));
      if (args == null) {
        return parameterMap;
      }
      Parameter[] parameters = method.getParameters();
      for (int i = 0; i < parameters.length; i++) {
        Parameter parameter = parameters[i];
        // 移除header
        if ((parameter.isAnnotationPresent(Header.class) || parameter.isAnnotationPresent(ParamHeader.class))
            && !parameter.isAnnotationPresent(Param.class)) {
          continue;
        }
        if (parameter.isAnnotationPresent(Expensive.class)) {
          Object obj = args[i];
          JSONObject jsonObject = (JSONObject) JSON.toJSON(obj);
          jsonObject.forEach((key, value) -> parameterMap
              .put(key, Optional.ofNullable(value).orElse(null)));
        } else {
          Param param = parameter.getAnnotation(Param.class);
          String parameterName = Optional.ofNullable(param).map(Param::value)
              .orElse(parameter.getName());
          parameterMap.put(parameterName, args[i]);
        }
      }
      return parameterMap;
    }
docs: 解析参数