1.提供一个ArrayList容器,把数据保存在里面,因为递归函数,获取返回值比较麻烦,这样调用完,取ArrayLis就可以了。
/** * 拼接组合名称mername * * @param vueRegion 对象 * @param list 拼接词 * @return */ private void getMername(VueRegion vueRegion, ArrayList<String> list) { //判断父级是否存在 if (vueRegion != null) { //压入数组 list.add(vueRegion.getName()); log.info("数组{}:{}", vueRegion.getName(), list.toString()); //获取父级对象 VueRegion parentRegion = getById(vueRegion.getPid()); //递归调用 getMername(parentRegion, list); } }
2、调用递归函数,如果list顺序不对,可以使用,Collections.reverse(list);进行反转
@Override public boolean tjModify(VueRegion vueRegion) { //new个数组用来存数据 ArrayList list = new ArrayList(); //调用递归换算 getMername(vueRegion, list); //反转数组 Collections.reverse(list); //数组转字符串 String mername = StringUtils.join(list, ","); //给java对象设置值 vueRegion.setMername(mername); //更新 return updateById(vueRegion); }
3.StringUtils.join(list, “,”);可以把数组转字符串,用,号连接,或其他符号