问题说我想使用CacheBuilder,但是我的值是异步引入的。之前使用MapMaker,因为CacheLoader不是必需的。现在我想知道我是否可以破解它,或者是否有任何非弃用的替代品。谢谢。
答案 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 */
}
});