4

最初の例:

UriBuilder.fromUri("http://localhost")
  .queryParam("foo", "test")
  .clone()
  .build()
// equals to: "http://localhost/?foo=test"

2 番目の例:

UriBuilder.fromUri("http://localhost")
  .replaceQueryParam("foo", "test")
  .clone()
  .build()
// equals to: "http://localhost/"

このようになるべきですか、それとも欠陥ですか(Jersey 1.11で)?

4

2 に答える 2

4

これはJerseyの欠陥であり、すでに修正されています:http: //java.net/jira/browse/JERSEY-1081

于 2012-04-26T09:10:33.017 に答える
0

なぜこれが起こっているのかはわかりませんが、cloneここではこの方法はまったく役に立ちません。

URI uri1 = UriBuilder.fromUri("http://localhost")
.queryParam("foo", "test")
.build();
//prints http://localhost?foo=test

URI uri2 = UriBuilder.fromUri("http://localhost")
.replaceQueryParam("foo", "2")
.build();
//prints http://localhost?foo=2

そしてさえ

URI uri2 = UriBuilder.fromUri(uri1)
.replaceQueryParam("foo", "2")
.build();
//prints http://localhost?foo=2

アップデート。方法についてclone()

状態を保持する UriBuilder のコピーを作成する

そのため、既存の uri で使用して、その新しいインスタンスをより効率的に作成してから、新しいインスタンスを構築する必要があります。なのでここは不要だと思います。

于 2012-04-06T07:38:34.247 に答える