gpt4 book ai didi

java - 仅用于自动驱逐事件的 RemovalListener

转载 作者:行者123 更新时间:2023-11-30 04:36:44 26 4
gpt4 key购买 nike

我正在使用 Guava LoadingCache,其驱逐策略设置为expireAfterWrite()。我还使用以下方法使访问条目无效:

v = cache.getIfPresent( k );
if( v != null ) {
cache.invalidate( k );
}

有没有办法添加一个 RemovalListener,只有在写入超时后条目被自动逐出时才会触发该监听器?从文档来看,每次删除条目时都会调用 RemovalListener。

最佳答案

是的,任何时候删除任何条目都会调用 RemovalListener ——但是 RemovalListener 将接收一个 RemovalNotification 对象,其中包括原因,您可以使用它来确定条目是如何被删除的。

CacheBuilder.newBuilder()
.removalListener(new RemovalListener<Foo, Bar>() {
public void onRemoval(RemovalNotification<Foo, Bar> notification) {
if (notification.getCause() == RemovalCause.EXPIRED) {
// we only care about these removals
}
}
})
.build();

关于java - 仅用于自动驱逐事件的 RemovalListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13318277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com