如何克隆缓存中取出的内容?

专业二三维GIS 专业二三维GIS 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在使用JCS时,从缓存中取出一个对象后,如果修改这个对象的属性值,缓存中的对象的相应属性值也会变化,可见通过JCS的get方法从缓存中取出的只是一个引用,如下:
JCS empcache=JCS.getInstance("empcache");
Employee employee=empcache.get("john");
System.out.print(employee.getDepartment()); //假设此时输出结果为"HR"
employee.setDepartment("Market");
System.out.print(employee.getDepartment()); //输出结果为"market"
System.out.print(empcache.get("john").getDepartment()); //这里的输出结果也变成了"market",但我不希望它改变.


我希望的结果是将缓存对象clone(深度复制)一个副本,当副本改变时缓存对象不会受到任何影响.
我知道可以自己重写Employee的clone()方法来实现对Employee对象的深度复制,但这样做很麻烦,而且不够灵活.不知道JCS里面有没有什么配置或方法使得从缓存中取出的是一个副本? 当然,除JCS之外的其它缓存技术如果能实现这种需求的话也请推荐一下.
...全文

相关推荐

cached-clone:克隆存储库并利用本地缓存

缓存克隆 克隆存储库并利用本地缓存。 Git子模块和Git LFS文件也被缓存。 安装 将git-cclone复制到您路径中的目录。 用法 git cclone <repo> <cache> <working> <ref> repo-url是您要克隆的存储库的URL cache-dir是用于缓存的目录(可能会变大!) working-copy-dir是结帐目录(始终清除!) ref表示您要签出的分支,但也可以是... ...通过tags/<tag>的标签引用 ...通过pull/<pr>/head或pull/<pr>/merge请求请求 用法示例 第一次运行将填充缓存并进行克隆(在此示例中,此过程耗时36秒): $ git cclone https://github.com/git/git cache repo maste

李川雨

c4d.python克隆体缓存操作 & 割草代码--支持事件回滚

c4d.python克隆体缓存操作 & 割草代码--支持事件回滚

阿拉丁的梦

git-cache:缓存定期克隆的Git存储库

git缓存 语境 如果您重复克隆Git存储库(例如,用于黑客攻击的软件),则可能会在克隆操作期间始终等待,特别是大型软件的等待时间过长,可能会因此而烦恼。 另一方面,如果您的计算机上有多个Git存储库副本,那么您可能不希望使用它。 Git具有功能“ --reference” / alternates,它使间接提交到同一台计算机上另一个目录的可能性成为可能。 用例是: $ cd ~/test $ git clone https://example.org/git/repo.git normal-repo (you wait minutes or hours, and the resulting directory is big) $ git clone --reference ~/test/repo https://example.org/git/repo.git reference

小小鹊

java深度克隆

java深度克隆,可以复制对象,非常好用,谁用谁知道!

goinni

对象克隆、复制工具

对象复制工具,基于cglib BeanCopier 实现对实体对象、持久化对象、代理对象的克隆和复制, 避免重复克隆和复制,避免无限循环引用,(校验hashCode) 可指定实体对象和集合属性的克隆深度

漓江农民
评论 7
收藏 已收藏
分享
返回顶部
专业二三维GIS
Java EE 67,535 成员 225,843 内容