Java 中是否存在可变的 URL/URI 对象?

Kyl*_*nin 6 java url

我有一个字符串形式的 URL,我希望对其进行各种修改。具体来说,我需要修改查询字符串中的值(如果它们已经存在),如果它们不存在,则创建它们。

在我看来,应该已经有一个现有的类,我可以用我的 URL 作为字符串构造它,它将 URL 分成其组成部分,并允许我单独修改每个组件。在查询字符串的情况下,应该可以将其作为 Map 寻址,修改它,然后将 URL 对象字符串化以取回修改后的 URL。

Java 有一个URL 类,但它似乎非常有限——它们的查询字符串被视为字符串,而不是 Map,修改它的唯一方法是调用set并指定 URL 的所有组件,而不是仅设置组件 I想设置。有没有更好的替代品?如果可能,我更喜欢标准 java/javax 包中的某些内容,但我认为这不太可能。

Sot*_*lis 6

我所知道的没有这样的 JDK 类。

春天网(Maven的链接)提供了UriComponentsBuilder一流的建筑UriComponents,其

表示 URI 组件的不可变集合,将组件类型映射到字符串值。包含所有组件的便利吸气剂。与 有效相似java.net.URI,但具有更强大的编码选项和对 URI 模板变量的支持。