From 5e23f3ba4dc5fd870b130cd7247eb79b07fb23cd Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 30 Aug 2024 15:11:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DTree.cloneTree=E7=9A=84Parent?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E5=BC=95=E7=94=A8=E9=94=99=E8=AF=AF=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/dromara/hutool/core/tree/MapTree.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/tree/MapTree.java b/hutool-core/src/main/java/org/dromara/hutool/core/tree/MapTree.java index 681c3308f..c500410e0 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/tree/MapTree.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/tree/MapTree.java @@ -368,22 +368,25 @@ public class MapTree extends LinkedHashMap implements Node */ public MapTree cloneTree() { final MapTree result = ObjUtil.clone(this); - result.setChildren(cloneChildren()); + result.setChildren(cloneChildren(result)); return result; } /** * 递归复制子节点 * + * @param parent 新的父节点 * @return 新的子节点列表 */ - private List> cloneChildren() { + private List> cloneChildren(final MapTree parent) { final List> children = getChildren(); if (null == children) { return null; } final List> newChildren = new ArrayList<>(children.size()); - children.forEach((t) -> newChildren.add(t.cloneTree())); + children.forEach((t) -> { + newChildren.add(t.cloneTree().setParent(parent)); + }); return newChildren; }