12
從the javadocs:爲什麼番石榴的Cache.invalidate(Object key)方法不是通用的?
public interface Cache<K,V> extends Function<K,V> {
//...
void invalidate(Object key);
//...
}
這是爲什麼沒有呈現爲一個通用的方法:
void invalidate(K key);
是否有技術上的原因,有歷史原因,還是其他原因?
但爲什麼高速緩存沒有'get(Object key)'方法? :) – 2012-02-27 04:15:36
由於'Cache.get'和'LoadingCache.getUnchecked'每個都可以使條目被添加到緩存中,所以它必須是'K'類型,原因與'Map.put'必須採用鍵'K'鍵。無可否認,'getIfPresent'不需要一個'Object' - 它強制它的參數是'K'類型 - 這可能是一個判斷的呼叫。 (但'asMap()。get'仍然需要一個'Object',它在功能上等同於'getIfPresent'。) – 2012-02-27 04:17:25
它看起來很奇怪,但它們在某些地方符合「Map」接口,而不是其他地方。 – 2012-02-27 04:18:40