diff --git a/hutool-core/src/main/java/cn/hutool/core/map/TolerantMap.java b/hutool-core/src/main/java/cn/hutool/core/map/TolerantMap.java index 9f190c52e28b59b87b8be71605e126776e063daa..1d5ff80c2c8d4f40a5f823317cde47d35852c32b 100644 --- a/hutool-core/src/main/java/cn/hutool/core/map/TolerantMap.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/TolerantMap.java @@ -1,5 +1,7 @@ package cn.hutool.core.map; +import cn.hutool.core.util.ObjectUtil; + import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -75,6 +77,11 @@ public class TolerantMap extends MapWrapper { return getOrDefault(key, defaultValue); } + @Override + public V getOrDefault(Object key, V defaultValue) { + return ObjectUtil.defaultIfNull(super.get(key), defaultValue); + } + @Override public boolean equals(Object o) { if (this == o) { diff --git a/hutool-core/src/test/java/cn/hutool/core/map/TolerantMapTest.java b/hutool-core/src/test/java/cn/hutool/core/map/TolerantMapTest.java index b6ed7cbe21db5a5f8430c5572dcf4664e4d6442d..a7edfdd9d4a2eea0758ce1a05ad5dcbbdd581c05 100644 --- a/hutool-core/src/test/java/cn/hutool/core/map/TolerantMapTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/map/TolerantMapTest.java @@ -15,6 +15,7 @@ public class TolerantMapTest { public void before() { map.put("monday", "星期一"); map.put("tuesday", "星期二"); + map.put("null", null); } @Test @@ -36,5 +37,6 @@ public class TolerantMapTest { public void testGet() { assert "星期二".equals(map.get("tuesday")); assert "default".equals(map.get(RandomUtil.randomString(6))); + assert "default".equals(map.get("null")); } }