使用复杂密钥创建Google Guava缓存

时间:2011-11-01 10:25:10

标签: caching guava

我正在尝试创建一个以“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

1 个答案:

答案 0 :(得分:5)

我最初将此缓存定义为缓存,当我更改CacheBuilder.build()以使用复杂密钥时,我忘记更新缓存声明。

这是一个简单的改变:

Cache<String, String> _ratingAgencyId;

Cache<Pair<String, String>, String> _ratingAgencyId;

做了这个伎俩。