使用没有加载功能的guava缓存

时间:2012-11-23 16:43:33

标签: java caching guava

我的java应用程序有一个缓存,我想换掉当前的缓存实现并用guava缓存替换它。

不幸的是,我的应用程序的缓存使用情况似乎与番石榴的缓存似乎不起作用的方式相匹配。我想要的是能够创建一个空缓存,使用“get”方法从缓存中读取一个项目,并使用“put”方法将项目存储在缓存中。我不希望“get”调用尝试将项添加到缓存中。

似乎LoadingCache类有我需要的get和put方法。但是我无法确定如何在不提供“加载”功能的情况下创建缓存。

我的第一次尝试是:

LoadingCache<String, String> CACHE = CacheBuilder.newBuilder().build();

但是这导致了这个编译错误:不兼容的类型;没有类型变量的实例K1,V1存在,以便Cache符合LoadingCache

显然我必须传入一个具有“加载”方法的CacheLoader。

(我想我可以创建一个CacheLoader,它有一个“load”方法,只抛出一个Exception,但这看起来有点奇怪和低效。这是正确的做法吗?)

1 个答案:

答案 0 :(得分:33)

CacheBuilder.build()返回一个非加载缓存。正是你想要的。只需使用

Cache<String, String> cache = CacheBuilder.newBuilder().build();