在日常的开发中, 经常会遇到许多树形结构的场景, 如菜单树, 部门树, 目录树等. 而这些一般都会涉及到要将数据库查询出来的集合转化为树形结构的功能.
由于 list
-> tree
是一个比较通用的功能, 无非就是根据 id
, pid
, children
这三个字段进行转换. 但由于字段名可能不一致, 如菜单里可能叫 menuId
, 而部门里叫 deptId
,所以我用反射来实现了一个通用的工具类, 来进行转换.
工具类:
1 | import org.springframework.util.StringUtils; |
菜单实体类:
1 | public class Menu implements Serializable { |
测试类:
1 |
|
运行结果:
1 | [ |