📄 callcache.java
字号:
/**
*
*/
package quickstart.cache;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author tamdv
*
*/
public class CallCache {
public CallCache(boolean shouldSynchronize) {
cache = (shouldSynchronize) ? new ConcurrentHashMap<ObjectMethodCall, Object>()
: new HashMap<ObjectMethodCall, Object>();
}
private final Map<ObjectMethodCall, Object> cache;
public static Object NULL_RETURN = new Object();
/**
* Will return NULL_RETURN if the method call result was cached, and the
* return from the method call was null.
*/
public Object getFromCache(ObjectMethodCall methodCall) {
return cache.get(methodCall);
}
public void setInCache(ObjectMethodCall methodCall, Object obj) {
if (obj == null) {
obj = NULL_RETURN;
}
cache.put(methodCall, obj);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -