class="java"> public static void main(String [] args){ Stack<CsBizType> bizTypeStack=new Stack<CsBizType>(); CsBizType type=cacheBizMap.get(pe.getCsDutyTypeId()); bizTypeStack.push(type); fetchLevelByStack(pe,cacheBizMap,bizTypeStack);//找到一级,二级记录名称 } private Experience fetchLevelByStack(Experience pe,Map<Long,CsBizType> cacheBizMap,Stack<CsBizType> bizTypeStack) { CsBizType type=bizTypeStack.peek();//查询最新的一个元素 if(type.getParentId() == 0L ) { //一级记录id type=bizTypeStack.pop(); pe.setCsDutyTypeLevel1(type.getName()); //堆栈中剩下最新的元素就是二级了 type=bizTypeStack.pop(); pe.setCsDutyTypeLevel2(type.getName()); return pe; } else { type=cacheBizMap.get(type.getParentId()); bizTypeStack.push(type); return fetchLevelByStack(pe,cacheBizMap,bizTypeStack); } }