diff --git a/CHANGELOG.md b/CHANGELOG.md index 16dddd9e9..e39f76b03 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,8 @@ * 【core 】 CollStreamUtil为空返回空的集合变为可编辑(pr#681@Gitee) * 【core 】 增加StrUtil.containsAll(pr#2437@Github) * 【core 】 ForestMap添加getNodeValue方法(pr#699@Gitee) -* 【http 】 优化HttpUtil.isHttp判断,避免NPE(pr#697@Gitee) +* 【http 】 优化HttpUtil.isHttp判断,避免NPE(pr#698@Gitee) +* 【core 】 修复Dict#containsKey方法没区分大小写问题(pr#697@Gitee) * ### 🐞Bug修复 * 【core 】 修复CollUtil里面关于可变参数传null造成的crash问题(pr#2428@Github) diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Dict.java b/hutool-core/src/main/java/cn/hutool/core/lang/Dict.java index 7118772e2..14424aa7b 100755 --- a/hutool-core/src/main/java/cn/hutool/core/lang/Dict.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/Dict.java @@ -19,6 +19,7 @@ import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; import java.util.Objects; +import java.util.function.BiFunction; /** * 字典对象,扩充了HashMap中的方法 @@ -567,6 +568,11 @@ public class Dict extends LinkedHashMap implements BasicTypeGett } // -------------------------------------------------------------------- Get end + @Override + public boolean containsKey(Object key) { + return super.containsKey(customKey((String) key)); + } + @Override public Object get(Object key) { return super.get(customKey((String) key)); @@ -587,6 +593,48 @@ public class Dict extends LinkedHashMap implements BasicTypeGett return (Dict) super.clone(); } + @Override + public Object remove(Object key) { + return super.remove(customKey((String) key)); + } + + @Override + public boolean remove(Object key, Object value) { + return super.remove(customKey((String) key), value); + } + + @Override + public boolean replace(String key, Object oldValue, Object newValue) { + return super.replace(customKey(key), oldValue, newValue); + } + + @Override + public Object replace(String key, Object value) { + return super.replace(customKey(key), value); + } + + //---------------------------------------------------------------------------- Override default methods start + @Override + public Object getOrDefault(Object key, Object defaultValue) { + return super.getOrDefault(customKey((String) key), defaultValue); + } + + @Override + public Object computeIfPresent(final String key, final BiFunction remappingFunction) { + return super.computeIfPresent(customKey(key), remappingFunction); + } + + @Override + public Object compute(final String key, final BiFunction remappingFunction) { + return super.compute(customKey(key), remappingFunction); + } + + @Override + public Object merge(final String key, final Object value, final BiFunction remappingFunction) { + return super.merge(customKey(key), value, remappingFunction); + } + //---------------------------------------------------------------------------- Override default methods end + /** * 将Key转为小写 * @@ -617,9 +665,4 @@ public class Dict extends LinkedHashMap implements BasicTypeGett return this; } - @Override - public boolean containsKey(Object key) { - return super.containsKey(customKey((String) key)); - } - } diff --git a/hutool-core/src/main/java/cn/hutool/core/map/TransMap.java b/hutool-core/src/main/java/cn/hutool/core/map/TransMap.java index 2fa508c53..e6608aec9 100755 --- a/hutool-core/src/main/java/cn/hutool/core/map/TransMap.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/TransMap.java @@ -70,7 +70,7 @@ public abstract class TransMap extends MapWrapper { @Override public boolean replace(K key, V oldValue, V newValue) { - return super.replace(customKey(key), customValue(oldValue), customValue(values())); + return super.replace(customKey(key), customValue(oldValue), customValue(newValue)); } @Override