gpt4 book ai didi

java - 使用带有连接字符分隔符的收集器

转载 作者:行者123 更新时间:2023-11-30 06:11:03 26 4
gpt4 key购买 nike

我正在构建一个名为“id”的查询参数,它是一个列表,所以我有类似 localhost:8080/application?id=1&id=2&id=3&id=4 的内容

(我知道我的方法还不够,我需要写第一个?id=)

方法

public Map<Long, String> getSkus(List<ItemPedido> itensPedido) {
Map<Long, String> skus = new HashMap<>();
String ids = itensPedido.stream()
.filter(i -> i.getProduto() != null)
.map(i -> i.getProduto().getId())
.collect(Collectors.joining("&id="));
//TODO
return skus;
}

我的问题是:为什么我在 Collectors.joining("&id=") 中收到此错误?

no suitable method found for collect(java.util.stream.Collector<java.lang.CharSequence,capture#1 of ?,java.lang.String>)
[ERROR] method java.util.stream.Stream.<R>collect(java.util.function.Supplier<R>,java.util.function.BiConsumer<R,? super java.lang.Long>,java.util.function.BiConsumer<R,R>) is not applicable
[ERROR] (cannot infer type-variable(s) R
[ERROR] (actual and formal argument lists differ in length))
[ERROR] method java.util.stream.Stream.<R,A>collect(java.util.stream.Collector<? super java.lang.Long,A,R>) is not applicable
[ERROR] (cannot infer type-variable(s) R,A
[ERROR] (argument mismatch; java.util.stream.Collector<java.lang.CharSequence,capture#1 of ?,java.lang.String> cannot be converted to java.util.stream.Collector<? super java.lang.Long,A,R>))

我正在使用 OpenJDK

$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

最佳答案

将流映射到字符串流:

.map(i -> i.getProduto().getId().toString())

关于java - 使用带有连接字符分隔符的收集器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50221947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com