给定一个java.net.URI
对象,我需要:
path
组件)。但是没有setX
方法,因此看起来这些对象应该是不可变的。URI
对象,除了给定的字段(“功能更新”)之外,它与原始对象相同。但是没有withX
方法,所以我必须编写自己的逻辑来处理这个问题。我是否真的必须编写自己的函数来处理URI
对象的修改?
答案 0 :(得分:3)
是的,每次都会创建一个新对象,因为java.net.URI
是不可变的。您可以使用像Apache HttpComponents'这样的第三方类。 URIBuilder
URI uri = new URIBuilder()
.setScheme("http")
.setHost("www.google.com")
.setPath("/search")
.setParameter("q", "httpclient")
.setParameter("btnG", "Google Search")
.setParameter("aq", "f")
.setParameter("oq", "")
.build(); // the build method creates a new URI instance behind the scenes