arraylist使用Java HashMap多类型
我正在使用哈希映射作为内存缓存。基本上,这就是我所拥有的:
private static final Map<String, Object> lookup = new HashMap<String, Object>();
public static Object get(CacheHelper key) {
return lookup.get(key.getId());
}
public static void store(CacheHelper key, Object value) {
lookup.put(key.getId(), value);
}
没关系。但对于我从地图上“得到”的每一个物体,我都必须投下,这非常难看。 我想把ArrayList和许多其他不同的东西放进去
有人知道其他类型安全的解决方案吗
(当然,我可以为每种类型创建一个getter和setter,但这是唯一的解决方案吗
那么,有没有更好的方法来创建内存缓存,或者有人知道如何包装hashmap以提高安全性
# 1 楼答案
这个
get
需要一个Class<T>
,因为类型擦除,强制转换(T)
是一个没有意义的禁止操作要么一路融入课堂;每类ID:
不使用值的
store
。getClass()允许通过接口或基类获取:或者只做
(为了读者,我简化了原始代码。)