Looly 5 years ago
parent
commit
25b9d61ffd

+ 1 - 0
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)

+ 5 - 0
hutool-core/src/main/java/cn/hutool/core/lang/Dict.java

@@ -464,6 +464,11 @@ public class Dict extends LinkedHashMap<String, Object> implements BasicTypeGett
 	}
 
 	@Override
+	public void putAll(Map<? extends String, ?> m) {
+		m.forEach(this::put);
+	}
+
+	@Override
 	public Dict clone() {
 		return (Dict) super.clone();
 	}

+ 1 - 3
hutool-core/src/main/java/cn/hutool/core/map/CustomKeyMap.java

@@ -38,9 +38,7 @@ public abstract class CustomKeyMap<K, V> extends MapWrapper<K, V> {
 
 	@Override
 	public void putAll(Map<? extends K, ? extends V> m) {
-		for (Map.Entry<? extends K, ? extends V> entry : m.entrySet()) {
-			this.put(entry.getKey(), entry.getValue());
-		}
+		m.forEach(this::put);
 	}
 
 	@Override

+ 15 - 2
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<String, Object> map = new HashMap<>();
+		map.put("A", 1);
+
+		dict.putAll(map);
+
+		Assert.assertEquals(1, dict.get("A"));
+		Assert.assertEquals(1, dict.get("a"));
+	}
 }