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

奔跑的甜椒3737893
2018-02-05
这是部门树层级树生成的代码。打了红色标记的是我看不懂的地方,
transformAclModuleTree 这个方法中 先传入了一个rootlist 但是后续没有对rootlist进行操作 为什么 最后能返回一个完整 的rootlist
写回答
1回答
-
你好,这是一个递归生成的过程。
这个方法实现呢,是每次根据当前传入的数据,先处理完当前层,然后从准备好的数据取出下一层,继续调用来处理下一个层级的数据
为什么处理完后会返回一个完整 的rootlist呢?这是因为这里方法调用传的是rootlist的引用,第一次传入时给的值是rootlist,代表第一层级,rootlist第一层级处理完后,开始递归调用处理下一个层级,每一个层级的处理本质上都是在rootlist及rootlist的属性上进行操作,本质上都是在修改传入的rootlist引用的内存地址里的值。因此在完成各个层级处理时,rootlist里就是一棵完整的树了。
这里需要注意的是rootlist这个结构里定义了一个和自己一样的结构,每个层级在处理下一个层级时,是操作当前这个对象里包含的和自己同样结构的对象。理解了这个,应该就容易懂了~
祝你学习愉快~
022018-02-05
相似问题