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

Maa*_*old 5 caching guava

我正在尝试创建一个具有"Pair"作为其键的Cache,并从帖子中获取该Pair类.

我尝试着:

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);
Run Code Online (Sandbox Code Playgroud)

哪个无法在Eclipse中编译(helios,java 1.6):

CacheBuilder类型中的方法构建(CacheLoader)不适用于参数(new CacheLoader,String>(){})

有没有人对如何解决这个问题有任何建议?我需要有一个存储"ID"的缓存的目标,其中"主键"是"评级机构"+"评级".

番石榴10.0.1

Maa*_*old 5

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

所以简单的改变来自:

Cache<String, String> _ratingAgencyId;
Run Code Online (Sandbox Code Playgroud)

Cache<Pair<String, String>, String> _ratingAgencyId;
Run Code Online (Sandbox Code Playgroud)

做了伎俩.