【发布时间】:2010-07-16 06:43:43
【问题描述】:
我刚开始使用 Oracle 的 Coherence 缓存并注意到这一点:如果我将 ConcurrentHashMap 对象放入缓存中,当我检索它时,我可以看到它已转换为普通的 HashMap。
我能做些什么来避免这种内部转换?
【问题讨论】:
标签: java caching oracle-coherence
我刚开始使用 Oracle 的 Coherence 缓存并注意到这一点:如果我将 ConcurrentHashMap 对象放入缓存中,当我检索它时,我可以看到它已转换为普通的 HashMap。
我能做些什么来避免这种内部转换?
【问题讨论】:
标签: java caching oracle-coherence
Java 的 ConcurrentHashMap(或其他集合类型)的等价物可能不存在于另一个平台中,因此 Coherence 缓存仅将键值对列表保留在映射中。这就是为什么你会得到一个 HashMap。
更好的方法是基于 ConcurrentHashMap(在 Java 版本中)和您自己的序列化程序创建您自己的地图类。使用 PofWriter.writeMap 和 PofReader.readMap 方法,您可以安排返回一个 ConcurrentHashMap。如果您随后需要 .Net 版本,您可以让您的地图类使用在 .Net 中最适合的地图,并提供适当的自定义序列化程序。
【讨论】:
我想通了。我从配置 xml 中删除了
【讨论】: