From ad40ca5670a53035db1109dcf989b15771701d19 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 16 Jun 2021 02:36:39 +0800 Subject: [PATCH] fix code --- .../src/main/java/cn/hutool/core/map/MapUtil.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 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 e21da92d9..4a45ae349 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 @@ -680,12 +680,17 @@ public class MapUtil { */ @SuppressWarnings("unchecked") public static Map filter(Map map, K... keys) { - final Map map2 = ObjectUtil.clone(map); + Map map2 = ObjectUtil.clone(map); if (isEmpty(map2)) { return map2; } + try { + map2.clear(); + } catch (UnsupportedOperationException e) { + // 克隆后的对象不支持清空,说明为不可变集合对象,使用默认的ArrayList保存结果 + map2 = new HashMap<>(); + } - map2.clear(); for (K key : keys) { if (map.containsKey(key)) { map2.put(key, map.get(key));