@Test
  void HeaderMapUserObject() throws Exception {
    server.enqueue(new MockResponse());

    TestInterface api = new TestInterfaceBuilder().target("http://localhost:" + server.getPort());

    HeaderMapUserObject headerMap = new HeaderMapUserObject();
    headerMap.setName("hello");
    headerMap.setGrade("5");
    api.HeaderMapUserObject(headerMap);

    assertThat(server.takeRequest())
        .hasHeaders(
            entry("name1", Collections.singletonList("hello")),
            entry("grade1", Collections.singletonList("5")));
  }
The type of a parameter value may not be the desired type to encode as. Prefer the interface
type.
core/src/test/java/feign/FeignTest.java