0

我正在使用 java 8 和番石榴 14.0

我用 load() 设置了一个 LoadingCache 和一个 CacheLoader。每次我从缓存中获取 load() 时,代码都会工作

有时我想在不调用 load() 的情况下检查数据是否在缓存中。这可能吗?

我尝试使用 getIfPresent() 但我仍然看到 load() 被调用。

我正在查看 AsMap 但担心它的大小,因为它从缓存中获取所有数据

提前感谢您提供任何信息/建议

巴里

4

1 回答 1

0

我不确定你关心的是什么asMap;返回一个视图,而不是整个副本;使用成本asMap为 O(1)。也就是说,令我感到惊讶的是getIfPresent仍然会导致负载;这让我怀疑你的程序的其他部分正在调用加载,因为getIfPresent不应该导致这种情况发生。

于 2015-10-30T21:12:27.837 回答