diff --git a/hutool-cache/src/main/java/cn/hutool/cache/impl/AbstractCache.java b/hutool-cache/src/main/java/cn/hutool/cache/impl/AbstractCache.java index 3465e9f00..3703478f0 100755 --- a/hutool-cache/src/main/java/cn/hutool/cache/impl/AbstractCache.java +++ b/hutool-cache/src/main/java/cn/hutool/cache/impl/AbstractCache.java @@ -89,7 +89,11 @@ public abstract class AbstractCache implements Cache { // issue#3618 对于替换的键值对,不做满队列检查和清除 if (cacheMap.containsKey(mKey)) { - // 存在相同key,覆盖之 + CacheObj oldObj = cacheMap.get(mKey); + if (oldObj != null) { + onRemove(oldObj.key, oldObj.obj); + cacheMap.remove(mKey); + } cacheMap.put(mKey, co); } else { if (isFull()) {