【发布时间】:2011-10-16 04:12:42
【问题描述】:
我是 Google 的 Guava 库的新手,对 Guava 的 Caching 包很感兴趣。目前我已经下载了 10.0.1 版本。在查看文档后,JUnit 测试了源代码,即使在广泛搜索 google 之后,我仍然无法弄清楚如何使用 Caching 包。文档很短,好像是为一直在使用 Guava 库的人而不是为像我这样的新手编写的。我只是希望有更多关于如何正确使用 Caching 包的真实示例。
假设我想使用最近最少使用 (LRU) 驱逐方法构建 10 个未过期项目的缓存。因此,从 api 中的示例中,我构建了如下代码:
Cache<String, String> mycache = CacheBuilder.newBuilder()
.maximumSize(10)
.build(
new CacheLoader<String, String>() {
public String load(String key) throws Exception {
return something; // ?????
}
});
由于需要 CacheLoader,我必须将它包含在 CacheBuilder 的构建方法中。但我不知道如何从 mycache 返回正确的值。
要将项目添加到 mycache,我使用以下代码:
mycache.asMap().put("key123", "value123");
要从 mycache 中获取项目,我使用以下方法:
mycache.get("key123")
get 方法将始终返回我从 CacheLoader 的 load 方法返回的任何值,而不是从 mycache 中获取值。谁能告诉我我错过了什么?
【问题讨论】: