有没有办法在Java8和/或SpringBoot中动态构建一个字符串?我正在尝试用从rest服务调用收到的参数构建一个url,这个服务有多个可选的过滤器,我可以使用pseudo-ai方法用多个if-else验证所有内容,但我认为这不是最好的方法。这个url是对jira restapi的调用,因此语法是独特的。
我想避免的是
and = "\"%20AND%20\"";
if (param1 != null) url += param1;
if (param1 != null && param2 != null) url += param1 + and + param2;
if (param1 != null && param2 != null && param3 != null) url += param1 + and + param2 + and + param3;
if (param1 != null && param2 == null && param3 != null) url += param1 + and + param3;
我认为一定有更好的方法来实现这一点,而不是验证每个参数10次。
1条答案
按热度按时间yzuktlbb1#
有多种解决方案可供选择:
就用一个
StringBuilder
或者简单的字符串连接来构建查询字符串Spring
UriComponentsBuilder
javadoc提供了一种更结构化的方式来构建查询字符串,您可能更熟悉基于jpa的解决方案使用
RestTemplates
允许传递有条件填充的Map
表示您的请求参数Spring更新
WebClient
类还支持使用uri生成器在get上设置参数,如下所示: