【发布时间】:2011-11-05 23:06:46
【问题描述】:
我有以下代码:new MapMaker().expireAfterAccess(SESSION_EXPIRATION, TimeUnit.MILLISECONDS).makeMap();
在 guava 10 中,它表示已弃用,应替换为 CacheBuilder。新的语法是什么?
【问题讨论】:
我有以下代码:new MapMaker().expireAfterAccess(SESSION_EXPIRATION, TimeUnit.MILLISECONDS).makeMap();
在 guava 10 中,它表示已弃用,应替换为 CacheBuilder。新的语法是什么?
【问题讨论】:
新语法看起来像
Cache<K, V> cache = CacheBuilder.newBuilder().expireAfterAccess(SESSION_EXPIRATION, TimeUnit.MILLISECONDS).build();
【讨论】:
阅读文档,我想你可能只是使用类似的方法,并传递一个总是抛出异常的加载器。然后,您将调用 asMap() 来获取一个映射,您可以在其中放置您的键和值并让缓存支持它。
【讨论】:
Guava 11.0 版将包含CacheBuilder.build():
http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/cache/CacheBuilder.html
在此之前,很遗憾有必要使用asMap()。
【讨论】: