Function<Map<?,List>,Integer> countMap = (Map)->{
Integer count = 0;
for(Object key:Map.keySet()){
count+=Map.get(key).size();
}
return count;
};
Integer test = countMap.apply(containedAssets);
我得到編譯器錯誤:apply(java.util.Map<?,List>> in Function cannot be applied to java.util.Map<java.util.String,List<myClass>>
。這種操作是否被Function禁止?我在不使用Map的情況下嘗試了一些不同的代碼,只是使用了一個列表,而Java在使用任何類型的列表方面都沒有問題。將泛型應用於java.util.Function
你想做什麼做什麼呢? – Tunaki
考慮更改爲'Function
作爲一個方面說明,僅僅因爲函數返回'Integer',您不必在函數內部使用'Integer'作爲局部變量。你可以使用'int',因爲它足以包裝最終結果而不是裝箱每個中間結果。此外,只要[迭代值](https://docs.oracle.com/javase/8/docs/api/java/util/)時,絕對不要遍歷鍵來爲每個映射調用'Map.get' Map.html#values--) – Holger