From 59f33fd12d6879ca87568517eb878466b3a0e92b Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 30 Jul 2025 19:14:23 +0800 Subject: [PATCH] =?UTF-8?q?`MapUtil`=E5=A2=9E=E5=8A=A0flatten=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=88pr#1368@Gitee=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/hutool/core/map/MapUtil.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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 985c307f1..1128b510d 100755 --- a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java @@ -1549,9 +1549,10 @@ public class MapUtil { * 将多层级Map处理为一个层级Map类型 * * @param map 入参Map + * @param 键类型 + * @param 值类型 * @return 单层级Map返回值 - * @param 键类型 - * @param 值类型 + * @since 5.8.40 */ public static Map flatten(final Map map) { return flatten(map, new HashMap<>()); @@ -1565,17 +1566,19 @@ public class MapUtil { * @param 键类型 * @param 值类型 * @return 单层级Map返回值 + * @since 5.8.40 */ @SuppressWarnings("unchecked") public static Map flatten(final Map map, Map flatMap) { Assert.notNull(map); - if(null == flatMap){ + if (null == flatMap) { flatMap = new HashMap<>(); } Map finalFlatMap = flatMap; map.forEach((k, v) -> { - if (v instanceof Map) { + // 避免嵌套循环 + if (v instanceof Map && v != map) { flatten((Map) v, finalFlatMap); } else { finalFlatMap.put(k, v);