I'm trying to create a Cache that has a "Pair" as its key, with that Pair class taken from this post.
I'm trying:
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);
Which fails to compile in Eclipse (helios, java 1.6) with:
The method build(CacheLoader) in the type CacheBuilder is not applicable for the arguments (new CacheLoader,String>(){})
Does anybody have any suggestions on how to solve this? The objective that that I need to have a cache that stores an "ID" for which the "primary key" is "Rating Agency" + "Rating".
Guava 10.0.1
I had this cache originally defined as Cache, and when I change the CacheBuilder.build() to use a complex key, I had forgotten to update my cache declaration.
So a simple change from:
to
did the trick.