Java 如何在不触发加载的情况下从loadingcache获取
我正在使用Java8和Guava14.0 我设置了LoadingCache和带有load()的CacheLoader。每次我从缓存中获取load()时,代码都会运行 有时我想在不调用load()的情况下检查数据是否在缓存中。这可能吗 我尝试使用getIfPresent()函数,但仍然看到正在调用load() 我在看AsMap,但担心它的大小,因为它从缓存中获取所有数据 提前感谢您提供的任何信息/建议Java 如何在不触发加载的情况下从loadingcache获取,java,google-guava-cache,Java,Google Guava Cache,我正在使用Java8和Guava14.0 我设置了LoadingCache和带有load()的CacheLoader。每次我从缓存中获取load()时,代码都会运行 有时我想在不调用load()的情况下检查数据是否在缓存中。这可能吗 我尝试使用getIfPresent()函数,但仍然看到正在调用load() 我在看AsMap,但担心它的大小,因为它从缓存中获取所有数据 提前感谢您提供的任何信息/建议 巴里我不确定你对asMap的担忧是什么;返回一个视图,而不是整个副本;使用asMap的成本为O(
巴里我不确定你对asMap的担忧是什么;返回一个视图,而不是整个副本;使用
asMap
的成本为O(1)。也就是说,getIfPresent
仍然会导致负载,这让我感到惊讶;这使我怀疑程序的其他部分是否正在调用load,因为getIfPresent
不应该导致这种情况发生