部门树生成疑问

来源:7-4 新增部门、部门层级树、更新部门接口自测

奔跑的甜椒3737893

2018-02-05

http://img.mukewang.com/szimg/5a77e89300010ebc16001206.jpg

这是部门树层级树生成的代码。打了红色标记的是我看不懂的地方,

transformAclModuleTree  这个方法中 先传入了一个rootlist  但是后续没有对rootlist进行操作 为什么 最后能返回一个完整 的rootlist

写回答

1回答

Jimin

2018-02-05

你好,这是一个递归生成的过程。

这个方法实现呢,是每次根据当前传入的数据,先处理完当前层,然后从准备好的数据取出下一层,继续调用来处理下一个层级的数据

为什么处理完后会返回一个完整 的rootlist呢?这是因为这里方法调用传的是rootlist的引用,第一次传入时给的值是rootlist,代表第一层级,rootlist第一层级处理完后,开始递归调用处理下一个层级,每一个层级的处理本质上都是在rootlist及rootlist的属性上进行操作,本质上都是在修改传入的rootlist引用的内存地址里的值。因此在完成各个层级处理时,rootlist里就是一棵完整的树了。

这里需要注意的是rootlist这个结构里定义了一个和自己一样的结构,每个层级在处理下一个层级时,是操作当前这个对象里包含的和自己同样结构的对象。理解了这个,应该就容易懂了~

祝你学习愉快~

0
2
奔跑的甜椒3737893
感谢老师 。明白了。。自己做了一个 demo也懂了。
2018-02-05
共2条回复

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2261 学习 · 1347 问题

查看课程