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, “,”);可以把数组转字符串,用,号连接,或其他符号