我正在尝试创建一个以“Pair”为键的Cache,其中的Pair类取自this post。
我正在尝试:
CacheLoader<Pair<String, String>, String> loader =
new CacheLoader<Pair<String, String>, String>() {
public String load(Pair<String, String> key) {
return GetRatingIdentityByShortNameLoader(key.first, key.second);
}
};
_ratingIdCache = CacheBuilder.newBuilder()
.concurrencyLevel(a_conclevel.intValue())
.maximumSize(a_maxsize.intValue())
.expireAfterAccess(a_maxage.intValue(), TimeUnit.MINUTES)
.build(loader);
无法在Eclipse(helios,java 1.6)中编译:
类型中的方法构建(CacheLoader) CacheBuilder不适用于参数(new 缓存加载器,字符串&GT;(){})
有人对如何解决这个问题有任何建议吗?我需要有一个存储“ID”的缓存的目标,“主键”是“评级机构”+“评级”。
番石榴10.0.1
答案 0 :(得分:5)
我最初将此缓存定义为缓存,当我更改CacheBuilder.build()以使用复杂密钥时,我忘记更新缓存声明。
这是一个简单的改变:
Cache<String, String> _ratingAgencyId;
到
Cache<Pair<String, String>, String> _ratingAgencyId;
做了这个伎俩。