在Guava缓存中创建不提供LoadingCache时的refreshAfterWrite的默认值是什么

时间:2019-01-22 21:57:22

标签: java guava

在不提供LoadingCache的情况下,refreshAfterWrite的默认值是什么。

cache = CacheBuilder.newBuilder().build(new CacheLoader<Object, Object>() {
  @Override
  public Object load(Object o) throws Exception {
    return getObj(o);
  }

  @Override
  public ListenableFuture<Object> reload(Object o) throws Exception {
    final ListenableFutureTask<Object> task = ListenableFutureTask.create(() -> {
      return getObj(o);
    });
    executor.execute(task);
    return task;
  }
});

我在调试中看到refreshAfterWrite为-1,但这意味着什么?这意味着它将永远不会重新加载?

1 个答案:

答案 0 :(得分:0)

我可以从 this 问题中了解到:

<块引用>

据记载,如果未设置任何选项,则会创建一个缓存 CacheBuilder 永远不会做任何类型的驱逐。这适用于 刷新也是如此,因为它是一种驱逐形式。