业务需求:我现在有一组对象集合表示机构
SelectDimensionChildDTO:机构对象(属性:code,name,parentCode,parentName,level,下一级集合List<SelectDimensionChildDTO> child),下一级集合对象是他自身。这就是chlid结构。
List<SelectDimensionChildDTO> selectDimensionChildDTOS:表示所有机构对象集合
现在有一个参数level,比如这个level=2,那么机构只到level=2的,他的child设为null
难点:对child结构进行遍历,不确定有多少层级level,不能用for
解决方法:方法的递归(方法里面调用自身)
核心代码:
//在for循环里面调用这个方法
for(SelectDimensionChildDTO :selectDimensionChildDTOS){
getChildByLevel(selectDimensionChildDTO ,level);
}
private static void getChildByLevel(SelectDimensionChildDTO selectDimensionChildDTO ,String level ){
//递归调用(注意:这里这个条件一定要最终成立,不然会一直调用自身,导致栈溢出。比如只有三层,现在level=4,则会一直调用)
if(level.equals(selectDimensionChildDTO .getLevel())){