From 794a67bd1ab01e35097eef72f32a823175673470 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 31 May 2023 18:59:14 +0800 Subject: [PATCH] fix code --- .../dromara/hutool/core/tree/TreeUtil.java | 7 ++- .../hutool/core/tree/IssueI795INTest.java | 47 +++++++++++++++++++ 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100755 hutool-core/src/test/java/org/dromara/hutool/core/tree/IssueI795INTest.java diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/tree/TreeUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/tree/TreeUtil.java index d6501fcee..665892b6c 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/tree/TreeUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/tree/TreeUtil.java @@ -231,9 +231,14 @@ public class TreeUtil { } MapTree parent = node.getParent(); + CharSequence name; while (null != parent) { - result.add(parent.getName()); + name = parent.getName(); parent = parent.getParent(); + if(null != name || null != parent){ + // issue#I795IN,根节点的null不加入 + result.add(name); + } } return result; } diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/tree/IssueI795INTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/tree/IssueI795INTest.java new file mode 100755 index 000000000..760064517 --- /dev/null +++ b/hutool-core/src/test/java/org/dromara/hutool/core/tree/IssueI795INTest.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2023 looly(loolly@aliyun.com) + * Hutool is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * http://license.coscl.org.cn/MulanPSL2 + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +package org.dromara.hutool.core.tree; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; + +public class IssueI795INTest { + + static List> all_menu=new ArrayList<>(); + static { + /* + * root + * /module-A + * /module-A-menu-1 + * /module-B + * /module-B-menu-1 + * /module-B-menu-2 + */ + all_menu.add(new TreeNode<>(1L, 0L, "root", 0L)); + all_menu.add(new TreeNode<>(2L,1L,"module-A",0L)); + all_menu.add(new TreeNode<>(3L,1L,"module-B",0L)); + all_menu.add(new TreeNode<>(4L,2L,"module-A-menu-1",0L)); + all_menu.add(new TreeNode<>(5L,3L,"module-B-menu-1",0L)); + all_menu.add(new TreeNode<>(6L,3L,"module-B-menu-2",0L)); + } + + @Test + void getParentsNameTest() { + final MapTree tree = TreeUtil.buildSingle(all_menu, 0L); + final MapTree chid = tree.getChildren().get(0).getChildren().get(0).getChildren().get(0); + Assertions.assertEquals("[module-A-menu-1, module-A, root]", chid.getParentsName(true).toString()); + } +}