有人如何异步使用Guava的CacheLoader

时间:2011-10-25 19:24:01

标签: caching guava

问题说我想使用CacheBuilder,但是我的值是异步引入的。之前使用MapMaker,因为CacheLoader不是必需的。现在我想知道我是否可以破解它,或者是否有任何非弃用的替代品。谢谢。

2 个答案:

答案 0 :(得分:5)

我认为你要问的问题是“如何在不指定CacheLoader的情况下使用CacheBuilder?”如果是这样的话,那么在Guava版本11.0中将会支持这一点。与此同时,CacheLoader上的build()方法已经被检入trunk(截至今天上午):

http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/cache/CacheBuilder.html

答案 1 :(得分:1)

一种方法是使用通用参数K和V作为您想要的输出:

LoadingCache<K, ListenableFuture<V>> values = CacheBuilder.newBuilder()
   .build(
       new CacheLoader<K, ListenableFuture<V>>() {
         public ListenableFuture<V> load(K key) {
           /* Get your future */
         }
       });