//配置 TreeNodeConfig treeNodeConfig = new TreeNodeConfig(); // 自定义属性名 都要默认值的 treeNodeConfig.setWeightKey("order"); treeNodeConfig.setIdKey("rid"); // 最大递归深度 treeNodeConfig.setDeep(3); //转换器 List<Tree<String>> treeNodes = TreeUtil.build(nodeList, "0", treeNodeConfig, (treeNode, tree) -> { tree.setId(treeNode.getId()); tree.setParentId(treeNode.getParentId()); tree.setWeight(treeNode.getWeight()); tree.setName(treeNode.getName()); // 扩展属性 ... tree.putExtra("extraField", 666); tree.putExtra("other", new Object()); });
nodeList是需要进行树状的对象
0表示父节点
下面的是build需要的构造,需要一个list的对象,一个根,一个配置,再放一个表达式
public static <T, E> List<Tree<E>> build(
List<T> list,
E rootId,
TreeNodeConfig treeNodeConfig,
NodeParser<T, E> nodeParser) {
return buildSingle(list, rootId, treeNodeConfig, nodeParser).getChildren();
}