@Override
  public Map<String, Object> encode(Object object) throws EncodeException {
    if (object == null) {
      return Collections.emptyMap();
    }
    ObjectParamMetadata metadata =
        classToMetadata.computeIfAbsent(object.getClass(), ObjectParamMetadata::parseObjectType);

    return metadata.objectFields.stream()
        .map(field -> this.FieldValuePair(object, field))
        .filter(fieldObjectPair -> fieldObjectPair.right.isPresent())
        .collect(Collectors.toMap(this::fieldName, fieldObjectPair -> fieldObjectPair.right.get()));
  }
the query map will be generated using member variable names as query parameter names.

<p>eg: "/uri?name={name}&number={number}"

<p>order of included query parameters not guaranteed, and as usual, if any value is null, it will
be left out
core/src/main/java/feign/querymap/FieldQueryMapEncoder.java