微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 使用无加载功能的番石榴缓存

我的 java应用程序有一个缓存,我想换掉当前的缓存实现,并将其替换为番石榴缓存.

不幸的是,我的应用程序的缓存使用情况似乎不符合番石榴缓存似乎工作的方式.所有我想要的是能够创建一个空的缓存,使用“get”方法从缓存中读取一个项目,并使用“put”方法将项目存储在缓存中.我不想让“get”调用尝试添加一个项目到缓存.

看来,LoadCache类有我需要的get和put方法.但是,无法提供“加载”功能,我无法找出如何创建缓存.

我的第一个尝试是这样的:

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

但是这会导致编译器错误:不兼容的类型;不存在类型变量K1,V1的实例,使得Cache符合LoadingCache

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

(我想我可以创建一个CacheLoader,它具有一个“加载”方法,只是抛出一个异常,但是这似乎是一种奇怪而且效率低下的事情.

解决方法

CacheBuilder.build()返回一个非加载缓存.只是你想要的只需使用
Cache<String,String> cache = CacheBuilder.newBuilder().build();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


应用场景 C端用户提交工单、工单创建完成之后、会发布一条工单创建完成的消息事件(异步消息)、MQ消费者收到消息之后、会通知各处理器处理该消息、各处理器处理完后都会发布一条将该工单写入搜索引擎的消息、最终该工单出现在搜索引擎、被工单处理人检索和处理。 事故异常体现 1、异常体现 从工单的流转记录发现、
线程类,设置有一个公共资源 package cn.org.chris.concurrent; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * @Descrip
Java中的数字(带有0前缀和字符串)
在Java 9中使用JLink的目的是什么?
Java Stream API Filter(过滤器)
在Java中找到正数和负数数组元素的数量
Java 9中JShell中的不同启动脚本是什么?
使用Java的位填充错误检测技术
java中string是什么
如何使用Java中的JSON-lib API将Map转换为JSON对象?