2012-02-27 45 views

回答

13

出於同樣的原因,Map.remove需要一個Object參數,其解釋爲herehere

這個原因既不是技術性的,也不是歷史性的:這只是一個客觀合理的理由。

+0

但爲什麼高速緩存沒有'get(Object key)'方法? :) – 2012-02-27 04:15:36

+5

由於'Cache.get'和'LoadingCache.getUnchecked'每個都可以使條目被添加到緩存中,所以它必須是'K'類型,原因與'Map.put'必須採用鍵'K'鍵。無可否認,'getIfPresent'不需要一個'Object' - 它強制它的參數是'K'類型 - 這可能是一個判斷的呼叫。 (但'asMap()。get'仍然需要一個'Object',它在功能上等同於'getIfPresent'。) – 2012-02-27 04:17:25

+0

它看起來很奇怪,但它們在某些地方符合「Map」接口,而不是其他地方。 – 2012-02-27 04:18:40