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不存在直接返回