diff --git a/hutool-core/src/main/java/cn/hutool/core/tree/BeanTree.java b/hutool-core/src/main/java/cn/hutool/core/tree/BeanTree.java index 75743b069..d120ad34a 100644 --- a/hutool-core/src/main/java/cn/hutool/core/tree/BeanTree.java +++ b/hutool-core/src/main/java/cn/hutool/core/tree/BeanTree.java @@ -122,14 +122,13 @@ public class BeanTree> { public List toTree(final List list) { if (Objects.isNull(parentPredicate)) { final Map> pIdValuesMap = EasyStream.of(list) - .peek(e -> Objects.requireNonNull(idGetter.apply(e), - () -> StrUtil.format("primary key {} must not null", LambdaUtil.getFieldName(idGetter)) + .peek(e -> Objects.requireNonNull(idGetter.apply(e), "The id of tree node must not be null") )).group(pidGetter); final List parents = pIdValuesMap.getOrDefault(pidValue, new ArrayList<>()); findChildren(list, pIdValuesMap); return parents; } - final List parents = new ArrayList<>(list.size()); + final List parents = new ArrayList<>(); final Map> pIdValuesMap = EasyStream.of(list).peek(e -> { if (parentPredicate.test(e)) { parents.add(e); @@ -142,6 +141,7 @@ public class BeanTree> { /** * 将树扁平化为集合,相当于将树里的所有节点都放到一个集合里 + *

本方法会主动将节点的子集合字段置为null

* * @param tree 树 * @return 集合