有人能告诉我这里做错了什么吗? p.getVote()
,集合计数逻辑返回Long,但我试图让我的结束输出一个int数组。
Map<Integer, Long> counters = iqr.getQgagueUniqueVotes().stream()
.collect(Collectors.groupingBy(p -> ((int)p.getVote()),
Collectors.counting()));
Collection<Long> values = counters.values();
long[] targetArray = values.toArray(new Long[values.size()]);
错误:
Incompatible type: Inference variable has incompatible upper bound
答案 0 :(得分:3)
将targetArray
数组的类型更改为类型Long
:
Long[] targetArray = values.toArray(new Long[values.size()]);
或创建值的流并映射到类型long
然后收集到数组。
long[] targetArray = values.stream().mapToLong(Long::longValue).toArray();