RelativeUriBuilder { public RelativeUriBuilder addParameter(String name, String... values) { delegate = delegate.addParameter(name, values); return this; } private  RelativeUriBuilder(); private  RelativeUriBuilder(URI previous); static RelativeUriBuilder relativeUriBuilder(); static RelativeUriBuilder relativeUriBuilder(String path); static RelativeUriBuilder relativeUriBuilderFrom(URI uri); RelativeUriBuilder replacePath(String path); RelativeUriBuilder appendPath(String path); RelativeUriBuilder replaceParameter(String name, String... values); RelativeUriBuilder replaceParameter(String name, Iterable<String> values); RelativeUriBuilder addParameter(String name, String... values); RelativeUriBuilder addParameter(String name, Iterable<String> values); RelativeUriBuilder replaceRawQuery(String rawQuery); @Override String toString(); URI build();  }
@Test public void testAddParameter() { URI uri = relativeUriBuilder() .replacePath("/") .addParameter("k1", "1") .addParameter("k1", "2") .addParameter("k1", "0") .addParameter("k2", "3") .build(); assertEquals(uri.toASCIIString(), "?k1=1&k1=2&k1=0&k2=3"); }