浏览代码

add method

Looly 5 年之前
父节点
当前提交
7c3716bf66

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

+ 16 - 16
hutool-core/src/main/java/cn/hutool/core/convert/Convert.java

@@ -49,7 +49,7 @@ public class Convert {
 
 	/**
 	 * 转换为字符串<br>
-	 * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br>
+	 * 如果给定的值为{@code null},或者转换失败,返回默认值{@code null}<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -85,7 +85,7 @@ public class Convert {
 
 	/**
 	 * 转换为字符<br>
-	 * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br>
+	 * 如果给定的值为{@code null},或者转换失败,返回默认值{@code null}<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -108,7 +108,7 @@ public class Convert {
 
 	/**
 	 * 转换为byte<br>
-	 * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<br>
+	 * 如果给定的值为{@code null},或者转换失败,返回默认值<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -121,7 +121,7 @@ public class Convert {
 
 	/**
 	 * 转换为byte<br>
-	 * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br>
+	 * 如果给定的值为{@code null},或者转换失败,返回默认值{@code null}<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -155,7 +155,7 @@ public class Convert {
 
 	/**
 	 * 转换为Short<br>
-	 * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<br>
+	 * 如果给定的值为{@code null},或者转换失败,返回默认值<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -168,7 +168,7 @@ public class Convert {
 
 	/**
 	 * 转换为Short<br>
-	 * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br>
+	 * 如果给定的值为{@code null},或者转换失败,返回默认值{@code null}<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -204,7 +204,7 @@ public class Convert {
 
 	/**
 	 * 转换为Number<br>
-	 * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br>
+	 * 如果给定的值为空,或者转换失败,返回默认值{@code null}<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -240,7 +240,7 @@ public class Convert {
 
 	/**
 	 * 转换为int<br>
-	 * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br>
+	 * 如果给定的值为{@code null},或者转换失败,返回默认值{@code null}<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -275,7 +275,7 @@ public class Convert {
 
 	/**
 	 * 转换为long<br>
-	 * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br>
+	 * 如果给定的值为{@code null},或者转换失败,返回默认值{@code null}<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -310,7 +310,7 @@ public class Convert {
 
 	/**
 	 * 转换为double<br>
-	 * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br>
+	 * 如果给定的值为空,或者转换失败,返回默认值{@code null}<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -345,7 +345,7 @@ public class Convert {
 
 	/**
 	 * 转换为Float<br>
-	 * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br>
+	 * 如果给定的值为空,或者转换失败,返回默认值{@code null}<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -380,7 +380,7 @@ public class Convert {
 
 	/**
 	 * 转换为boolean<br>
-	 * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br>
+	 * 如果给定的值为空,或者转换失败,返回默认值{@code null}<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -415,7 +415,7 @@ public class Convert {
 
 	/**
 	 * 转换为BigInteger<br>
-	 * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br>
+	 * 如果给定的值为空,或者转换失败,返回默认值{@code null}<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -480,7 +480,7 @@ public class Convert {
 
 	/**
 	 * 转换为LocalDateTime<br>
-	 * 如果给定的值为空,或者转换失败,返回<code>null</code><br>
+	 * 如果给定的值为空,或者转换失败,返回{@code null}<br>
 	 * 转换失败不会报错
 	 *
 	 * @param value 被转换的值
@@ -506,7 +506,7 @@ public class Convert {
 
 	/**
 	 * 转换为Date<br>
-	 * 如果给定的值为空,或者转换失败,返回<code>null</code><br>
+	 * 如果给定的值为空,或者转换失败,返回{@code null}<br>
 	 * 转换失败不会报错
 	 * 
 	 * @param value 被转换的值
@@ -534,7 +534,7 @@ public class Convert {
 
 	/**
 	 * 转换为Enum对象<br>
-	 * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br>
+	 * 如果给定的值为空,或者转换失败,返回默认值{@code null}<br>
 	 * 
 	 * @param <E> 枚举类型
 	 * @param clazz Enum的Class

+ 30 - 0
hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java

@@ -1161,6 +1161,21 @@ public class MapUtil {
 	}
 
 	/**
+	 * 获取Map指定key的值,并转换为指定类型,此方法在转换失败后不抛异常,返回null。
+	 *
+	 * @param <T>          目标值类型
+	 * @param map          Map
+	 * @param key          键
+	 * @param type         值类型
+	 * @param defaultValue 默认值
+	 * @return 值
+	 * @since 5.5.3
+	 */
+	public static <T> T getQuietly(Map<?, ?> map, Object key, Class<T> type, T defaultValue) {
+		return null == map ? null : Convert.convertQuietly(type, map.get(key), defaultValue);
+	}
+
+	/**
 	 * 获取Map指定key的值,并转换为指定类型
 	 *
 	 * @param <T>  目标值类型
@@ -1190,6 +1205,21 @@ public class MapUtil {
 	}
 
 	/**
+	 * 获取Map指定key的值,并转换为指定类型,转换失败后返回null,不抛异常
+	 *
+	 * @param <T>          目标值类型
+	 * @param map          Map
+	 * @param key          键
+	 * @param type         值类型
+	 * @param defaultValue 默认值
+	 * @return 值
+	 * @since 5.5.3
+	 */
+	public static <T> T getQuietly(Map<?, ?> map, Object key, TypeReference<T> type, T defaultValue) {
+		return null == map ? null : Convert.convertQuietly(type, map.get(key), defaultValue);
+	}
+
+	/**
 	 * 重命名键<br>
 	 * 实现方式为一处然后重新put,当旧的key不存在直接返回<br>
 	 * 当新的key存在,抛出{@link IllegalArgumentException} 异常