我正在使用java 8和guava 14.0
我使用load()设置了一个LoadingCache和一个CacheLoader。每次从缓存中调用load()时,代码都会起作用
有时我想检查数据是否在缓存中而不调用load()。这可能吗?
我尝试使用getIfPresent(),但我仍然看到正在调用load()。
我正在查看AsMap但是因为它从缓存中获取所有数据而关注它的大小
提前感谢您提供任何信息/建议
百里
答案 0 :(得分:0)
我不确定你对asMap
的关注点是什么;返回视图,而不是整个副本;使用asMap
的成本是O(1)。也就是说,令我惊讶的是getIfPresent
仍会造成负担;这让我怀疑你的程序的其他部分正在调用load,因为getIfPresent
不应该导致这种情况发生。