我写的静态函数有一个问题,该函数接收包含键和值的通用Object数组。当找到具有相同值的键时,它会添加该键的值;但是,我在使函数静态化方面遇到问题。代码如下:
public static<K,V extends Number> void mapSumOfValues(/*Map<K,V> h,*/ DataObject<K, V> []dataarray) {
Map<K,V> h = new HashMap<>();
Integer sum = 0;
for(DataObject<K,V> d: dataarray) {
h.merge(d.getKey(), d.getValue().intValue(), Integer:: sum);
}
我得到了错误:
方法中的merge(K,V,BiFunction) Map类型不适用于以下参数(K,int, 整数:: sum)
答案 0 :(得分:0)
您的合并功能仅适用于Integer
,因此您需要Map<K, Integer>
。
Map<K, Integer> h = new HashMap<>();
for (DataObject<K, V> d : dataarray) {
h.merge(d.getKey(), d.getValue().intValue(), Integer::sum);
}