From d01e8b11bb7ca0cad4d2df5a9405e63c55796ba7 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 14 Jul 2021 09:33:28 +0800 Subject: [PATCH] add put method --- CHANGELOG.md | 3 +- .../java/cn/hutool/core/map/MapBuilder.java | 42 ++++++++++++------- .../cn/hutool/core/map/MapBuilderTest.java | 1 - 3 files changed, 30 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 434d8b8c2..bb087adf1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,12 +3,13 @@ ------------------------------------------------------------------------------------------------------------- -# 5.7.5 (2021-07-12) +# 5.7.5 (2021-07-14) ### 🐣新特性 * 【core 】 DateUtil增加ceiling重载,可选是否归零毫秒 * 【core 】 IterUtil增加firstMatch方法 * 【core 】 增加NanoId +* 【core 】 MapBuilder增加put方法(pr#367@Gitee) ### 🐞Bug修复 * 【core 】 修复FileUtil.normalize处理上级路径的问题(issue#I3YPEH@Gitee) diff --git a/hutool-core/src/main/java/cn/hutool/core/map/MapBuilder.java b/hutool-core/src/main/java/cn/hutool/core/map/MapBuilder.java index 64bc52c16..68e14483d 100644 --- a/hutool-core/src/main/java/cn/hutool/core/map/MapBuilder.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/MapBuilder.java @@ -11,7 +11,7 @@ import java.util.function.Supplier; * @param Value类型 * @since 3.1.1 */ -public class MapBuilder implements Serializable{ +public class MapBuilder implements Serializable { private static final long serialVersionUID = 1L; private final Map map; @@ -31,8 +31,8 @@ public class MapBuilder implements Serializable{ /** * 创建Builder * - * @param Key类型 - * @param Value类型 + * @param Key类型 + * @param Value类型 * @param isLinked true创建LinkedHashMap,false创建HashMap * @return MapBuilder * @since 5.3.0 @@ -78,14 +78,27 @@ public class MapBuilder implements Serializable{ /** * 链式Map创建 * - * @param condition put条件 - * @param k Key类型 - * @param v Value类型 + * @param k Key类型 + * @param supplier Value类型结果提供方 * @return 当前类 + * @since 5.7.5 + */ + public MapBuilder put(K k, Supplier supplier) { + return put(k, supplier.get()); + } + + /** + * 链式Map创建 + * + * @param condition put条件 + * @param k Key类型 + * @param v Value类型 + * @return 当前类 + * @since 5.7.5 */ public MapBuilder put(boolean condition, K k, V v) { if (condition) { - map.put(k, v); + put(k, v); } return this; } @@ -94,13 +107,14 @@ public class MapBuilder implements Serializable{ * 链式Map创建 * * @param condition put条件 - * @param k Key类型 - * @param supplier Value类型结果提供方 + * @param k Key类型 + * @param supplier Value类型结果提供方 * @return 当前类 + * @since 5.7.5 */ public MapBuilder put(boolean condition, K k, Supplier supplier) { if (condition) { - map.put(k, supplier.get()); + put(k, supplier); } return this; } @@ -138,7 +152,7 @@ public class MapBuilder implements Serializable{ /** * 将map转成字符串 * - * @param separator entry之间的连接符 + * @param separator entry之间的连接符 * @param keyValueSeparator kv之间的连接符 * @return 连接字符串 */ @@ -149,7 +163,7 @@ public class MapBuilder implements Serializable{ /** * 将map转成字符串 * - * @param separator entry之间的连接符 + * @param separator entry之间的连接符 * @param keyValueSeparator kv之间的连接符 * @return 连接后的字符串 */ @@ -160,9 +174,9 @@ public class MapBuilder implements Serializable{ /** * 将map转成字符串 * - * @param separator entry之间的连接符 + * @param separator entry之间的连接符 * @param keyValueSeparator kv之间的连接符 - * @param isIgnoreNull 是否忽略null的键和值 + * @param isIgnoreNull 是否忽略null的键和值 * @return 连接后的字符串 */ public String join(String separator, final String keyValueSeparator, boolean isIgnoreNull) { diff --git a/hutool-core/src/test/java/cn/hutool/core/map/MapBuilderTest.java b/hutool-core/src/test/java/cn/hutool/core/map/MapBuilderTest.java index cd82eba2b..71e088950 100644 --- a/hutool-core/src/test/java/cn/hutool/core/map/MapBuilderTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/map/MapBuilderTest.java @@ -23,7 +23,6 @@ public class MapBuilderTest { } public String getValue(int value) { - System.out.println("getValue: " + value); return String.valueOf(value); } }