[英]Rewrite Imperative For Loop With Declarative Approach using Java Stream API
I have list of http query params in NamveValuePair
format and a WebTarget
( javax/ws/rs/client/WebTarget.java ).我有一个NamveValuePair
格式的 http 查询参数列表和一个WebTarget
( javax/ws/rs/client/WebTarget.java )。 Then I am simply attaching those query params to WebTarget
one by one using imperative approach.然后,我只是使用命令式方法将这些查询参数一一附加到WebTarget
。
I know that it's easy to apply stream when all the elements are in the data type.我知道当所有元素都在数据类型中时,应用 stream 很容易。 But I failed to apply the same solution when they are not.但是当他们不是时,我没有应用相同的解决方案。
This is the code I wan to rewrite using Java Streams API这是我想使用 Java 流 API 重写的代码
public WebTarget attachQueryParams(List<NameValuePair> queryParams, WebTarget webTarget) {
for (NameValuePair param : queryParams) {
webTarget = webTarget.queryParam(param.getName(), param.getValue());
}
return webTarget;
}
I tried to rewrite it using stream reduce
function as follows with no luck so far:我尝试使用 stream 重写它, reduce
function 如下,到目前为止没有运气:
queryParams.stream().reduce(webTarget,((webTarget1, pair) -> webTarget1.queryParam(pair.getName(),pair.getValue())))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.