我正在尝试编写java.util
的Map实现的缓存版本,其中在构造地图实例时,您可以指定键或值的到期时间,例如
public CachedMap(long keyMS, long valueMS) {
//...
}
我这样做的想法是简单地扩展相关的Map
类并覆盖它们的Entry
类以添加“set”时间戳来检查到期时间,但是看起来这些类具有包私有保护。如果没有时间注入或维护另外两个内部地图,我有什么方法可以为这些类添加功能(或者不会增加相对极端开销的替代解决方案)?或者我最终是否必须重写所有java.util
的Map实现?
至于此目的,最初是用于存储从数据库中检索的自动过期的缓存对象,但是还有其他应用程序,这些Map实现对我有用。