UriComponentsBuilder
的文档表明将其转换为java.net.URI
是可能的,但不是很直观。下面的方法似乎可行,但需要通过
toUriString()
进行中间序列化。UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromUriString(origin+base);
java.net.URI uri = null;
try {
uri = new URI(uriBuilder.toUriString());
}
catch (Exception e) {} // TODO: insanity
String response = restTemplate.getForObject(uri,String.class);
java.net.URI
的构造函数声明了一个抛出异常:java.net.URISyntaxException; 必须被捕获或声明为抛出异常。
有没有一种不需要处理异常的好方法呢?
一个真正有帮助的答案可能会提供关于为什么build
有不同的返回类型取决于输入类型的见解。
uriBuilder.build
这有什么问题。 - M. Deinumbuild
返回一个URI
...这在你自己指向的javadoc中已经清楚地解释了...只需传入一个空映射Collections.emptyMap
即可。 - M. DeinumCollections.emptyMap()
可能是我正在寻找的答案。new Object[0]
似乎也可以工作。这两种方法对我来说都有点奇怪,但任何一种看起来都比我的初始解决方案好。 - Brent Bradburn