使用没有加载功能的番石榴缓存
我的java应用程序有一个缓存,我想交换出当前的缓存实现并将其替换为番石榴缓存。
不幸的是,我的应用程序的缓存使用情况似乎与番石榴缓存的工作方式不匹配。我想要的只是能够创建一个空缓存,使用“get”方法从缓存中读取一个项目,并使用“put”方法将一个项目存储在缓存中。我不希望“get”调用尝试将项目添加到缓存中。
似乎LoadingCache类具有我需要的get和put方法。但是我很难弄清楚如何在不提供“加载”功能的情况下创建缓存。
我的第一次尝试是这样的:
LoadingCache<String, String> CACHE = CacheBuilder.newBuilder().build();
但这会导致编译器错误:不兼容的类型;不存在 K1,V1 类型的实例,因此缓存符合 LoadingCache
显然,我必须传入具有“load”方法的CacheLoader。
(我想我可以创建一个缓存加载器,它有一个“load”方法,只是抛出一个异常,但这似乎有点奇怪和低效。这是正确的做法吗?