Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不触发加载的情况下从loadingcache获取_Java_Google Guava Cache - Fatal编程技术网

Java 如何在不触发加载的情况下从loadingcache获取

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

我正在使用Java8和Guava14.0

我设置了LoadingCache和带有load()的CacheLoader。每次我从缓存中获取load()时,代码都会运行

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

我尝试使用getIfPresent()函数,但仍然看到正在调用load()

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

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


巴里

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