我想使用google Cache来缓存我的数据,所以我这样写代码。我发现它只能传递一个名为key的参数,但是在我的方法中,我有另一个参数,如何修复我的代码?
private LoadingCacheS<tring, List<Map<String, Long>> getCache(String key,Map<String,String> para1,
String para2){
retrun CacheBuilder.newBuilder()
.refreshAfterWrite(20, TimeUnit.MINUTES)
.expireAfterWrite(30, TimeUnit.MINUTES)
.maximumSize(1)
.build(new CacheLoader<String, List<Map<String, Long>>>() {
@Override
public List<Map<String, Long>> load(String key) throws Exception {
return queryData(key); //can not get the other para
}
@Override
public ListenableFuture<List<Map<String, Long>>> reload(String key, List<Map<String, Long>> oldValue)
throws Exception {
ListenableFutureTask<List<Map<String, Long>>> task = ListenableFutureTask
.create(() -> queryData(key));
executorService.execute(task);
return task;
}
在我的 queryData 方法中,我有三个参数,如何更改我的代码?
private List<Map<String, Long>> queryData(String key,Map<String,String> para1,
String para2){
//query data and return data
}