diff --git a/CHANGELOG.md b/CHANGELOG.md index f34d6b12d..ce5bd8729 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ * 【setting】 修复GroupSet.contains错误(pr#943@Github) * 【core 】 修复ZipUtil没有调用finish问题(issue#944@Github) * 【extra 】 修复Ftp中ArrayList长度为负问题(pr#136@Github) +* 【core 】 修复Dict中putAll大小写问题(issue#I1MU5B@Gitee) ------------------------------------------------------------------------------------------------------------- ## 5.3.8 (2020-06-16) 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 d5f206459..e3734747c 100644 --- a/hutool-core/src/main/java/cn/hutool/core/lang/Dict.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/Dict.java @@ -463,6 +463,11 @@ public class Dict extends LinkedHashMap implements BasicTypeGett return super.put(customKey(key), value); } + @Override + public void putAll(Map m) { + m.forEach(this::put); + } + @Override public Dict clone() { return (Dict) super.clone(); diff --git a/hutool-core/src/main/java/cn/hutool/core/map/CustomKeyMap.java b/hutool-core/src/main/java/cn/hutool/core/map/CustomKeyMap.java index efe6637fc..93794b9cb 100644 --- a/hutool-core/src/main/java/cn/hutool/core/map/CustomKeyMap.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/CustomKeyMap.java @@ -38,9 +38,7 @@ public abstract class CustomKeyMap extends MapWrapper { @Override public void putAll(Map m) { - for (Map.Entry entry : m.entrySet()) { - this.put(entry.getKey(), entry.getValue()); - } + m.forEach(this::put); } @Override diff --git a/hutool-core/src/test/java/cn/hutool/core/lang/DictTest.java b/hutool-core/src/test/java/cn/hutool/core/lang/DictTest.java index 655e74491..7f86f7706 100644 --- a/hutool-core/src/test/java/cn/hutool/core/lang/DictTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/lang/DictTest.java @@ -1,10 +1,11 @@ package cn.hutool.core.lang; +import cn.hutool.core.date.DateTime; import org.junit.Assert; import org.junit.Test; -import cn.hutool.core.date.DateTime; -import cn.hutool.core.lang.Dict; +import java.util.HashMap; +import java.util.Map; public class DictTest { @Test @@ -17,4 +18,16 @@ public class DictTest { Long v2 = dict.getLong("key2"); Assert.assertEquals(Long.valueOf(1000L), v2); } + + @Test + public void dictTest2(){ + final Dict dict = new Dict(true); + Map map = new HashMap<>(); + map.put("A", 1); + + dict.putAll(map); + + Assert.assertEquals(1, dict.get("A")); + Assert.assertEquals(1, dict.get("a")); + } }