我有一个Map<String,BigDecimal>
(比如说amountMap),我想将其转换为ImmutableMap<String,Double>
,代码为:
return amountMap.entrySet().stream()
.collect(collectingAndThen(toMap(e->e.getKey(),e->e.getValue().doubleValue()),ImmutableMap::copyOf));
然而,Eclipse显示一个错误,指出e.getKey()和e.getValue()需要显式类型转换,因为它们是Object类型。
当我将其拆分时,相同的代码可以正常工作:
Map<String,Double> tempMap = amountMap.entrySet().stream()
.collect(toMap(e->e.getKey(),e->e.getValue().doubleValue());
return ImmutableMap.copyOf(tempMap);
我假设前一个错误是因为Type Erasure,但如果没有,是否有办法将Map作为ImmutableMap返回而没有创建临时地图来保存结果的中间步骤?
答案 0 :(得分:0)
这是因为我使用旧版本的Eclipse(Luna)修复了升级