diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9aa12e465..9b7c1cd2c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -22,6 +22,7 @@
* 【core 】 增加GanymedUtil
* 【poi 】 增加OFD支持,OfdWriter
* 【poi 】 修复NumberUtil属性拼写错误(pr#1311@Github)
+* 【core 】 MapUtil增加getQuietly方法(issue#I29IWO@Gitee)
### Bug修复
* 【cache 】 修复Cache中get重复misCount计数问题(issue#1281@Github)
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java b/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java
index 052ae30e7..06d70e621 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/Convert.java
@@ -49,7 +49,7 @@ public class Convert {
/**
* 转换为字符串
- * 如果给定的值为null
,或者转换失败,返回默认值null
+ * 如果给定的值为{@code null},或者转换失败,返回默认值{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -85,7 +85,7 @@ public class Convert {
/**
* 转换为字符
- * 如果给定的值为null
,或者转换失败,返回默认值null
+ * 如果给定的值为{@code null},或者转换失败,返回默认值{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -108,7 +108,7 @@ public class Convert {
/**
* 转换为byte
- * 如果给定的值为null
,或者转换失败,返回默认值
+ * 如果给定的值为{@code null},或者转换失败,返回默认值
* 转换失败不会报错
*
* @param value 被转换的值
@@ -121,7 +121,7 @@ public class Convert {
/**
* 转换为byte
- * 如果给定的值为null
,或者转换失败,返回默认值null
+ * 如果给定的值为{@code null},或者转换失败,返回默认值{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -155,7 +155,7 @@ public class Convert {
/**
* 转换为Short
- * 如果给定的值为null
,或者转换失败,返回默认值
+ * 如果给定的值为{@code null},或者转换失败,返回默认值
* 转换失败不会报错
*
* @param value 被转换的值
@@ -168,7 +168,7 @@ public class Convert {
/**
* 转换为Short
- * 如果给定的值为null
,或者转换失败,返回默认值null
+ * 如果给定的值为{@code null},或者转换失败,返回默认值{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -204,7 +204,7 @@ public class Convert {
/**
* 转换为Number
- * 如果给定的值为空,或者转换失败,返回默认值null
+ * 如果给定的值为空,或者转换失败,返回默认值{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -240,7 +240,7 @@ public class Convert {
/**
* 转换为int
- * 如果给定的值为null
,或者转换失败,返回默认值null
+ * 如果给定的值为{@code null},或者转换失败,返回默认值{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -275,7 +275,7 @@ public class Convert {
/**
* 转换为long
- * 如果给定的值为null
,或者转换失败,返回默认值null
+ * 如果给定的值为{@code null},或者转换失败,返回默认值{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -310,7 +310,7 @@ public class Convert {
/**
* 转换为double
- * 如果给定的值为空,或者转换失败,返回默认值null
+ * 如果给定的值为空,或者转换失败,返回默认值{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -345,7 +345,7 @@ public class Convert {
/**
* 转换为Float
- * 如果给定的值为空,或者转换失败,返回默认值null
+ * 如果给定的值为空,或者转换失败,返回默认值{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -380,7 +380,7 @@ public class Convert {
/**
* 转换为boolean
- * 如果给定的值为空,或者转换失败,返回默认值null
+ * 如果给定的值为空,或者转换失败,返回默认值{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -415,7 +415,7 @@ public class Convert {
/**
* 转换为BigInteger
- * 如果给定的值为空,或者转换失败,返回默认值null
+ * 如果给定的值为空,或者转换失败,返回默认值{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -480,7 +480,7 @@ public class Convert {
/**
* 转换为LocalDateTime
- * 如果给定的值为空,或者转换失败,返回null
+ * 如果给定的值为空,或者转换失败,返回{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -506,7 +506,7 @@ public class Convert {
/**
* 转换为Date
- * 如果给定的值为空,或者转换失败,返回null
+ * 如果给定的值为空,或者转换失败,返回{@code null}
* 转换失败不会报错
*
* @param value 被转换的值
@@ -534,7 +534,7 @@ public class Convert {
/**
* 转换为Enum对象
- * 如果给定的值为空,或者转换失败,返回默认值null
+ * 如果给定的值为空,或者转换失败,返回默认值{@code null}
*
* @param 枚举类型
* @param clazz Enum的Class
diff --git a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java
index 867f23b42..af3bb89b6 100644
--- a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java
@@ -1160,6 +1160,21 @@ public class MapUtil {
return null == map ? null : Convert.convert(type, map.get(key), defaultValue);
}
+ /**
+ * 获取Map指定key的值,并转换为指定类型,此方法在转换失败后不抛异常,返回null。
+ *
+ * @param 目标值类型
+ * @param map Map
+ * @param key 键
+ * @param type 值类型
+ * @param defaultValue 默认值
+ * @return 值
+ * @since 5.5.3
+ */
+ public static T getQuietly(Map, ?> map, Object key, Class type, T defaultValue) {
+ return null == map ? null : Convert.convertQuietly(type, map.get(key), defaultValue);
+ }
+
/**
* 获取Map指定key的值,并转换为指定类型
*
@@ -1189,6 +1204,21 @@ public class MapUtil {
return null == map ? null : Convert.convert(type, map.get(key), defaultValue);
}
+ /**
+ * 获取Map指定key的值,并转换为指定类型,转换失败后返回null,不抛异常
+ *
+ * @param 目标值类型
+ * @param map Map
+ * @param key 键
+ * @param type 值类型
+ * @param defaultValue 默认值
+ * @return 值
+ * @since 5.5.3
+ */
+ public static T getQuietly(Map, ?> map, Object key, TypeReference type, T defaultValue) {
+ return null == map ? null : Convert.convertQuietly(type, map.get(key), defaultValue);
+ }
+
/**
* 重命名键
* 实现方式为一处然后重新put,当旧的key不存在直接返回