java jsp 树_jsp 树形结构

packagecom.ytkj.rose.util;importorg.springframework.util.StringUtils;importjavax.validation.constraints.NotNull;importjava.lang.reflect.Field;importjava.util.ArrayList;importjava.util.Collection;importjava.util.HashSet;importjava.util.Set;public classTreeUtils {/*** 集合转树结构

*

*@paramcollection 目标集合

*@paramclazz 集合元素类型

*@return转换后的树形结构*/

public static Collection toTree(@NotNull Collection collection, @NotNull Classclazz) {return toTree(collection, null, null, null, clazz);

}/*** 集合转树结构

*

*@paramcollection 目标集合

*@paramid 节点编号字段名称

*@paramparent 父节点编号字段名称

*@paramchildren 子节点集合属性名称

*@paramclazz 集合元素类型

*@return转换后的树形结构*/

public static Collection toTree(@NotNull Collection collection, String id, String parent, String children, @NotNull Classclazz) {try{if (collection == null || collection.isEmpty()) return null;//如果目标集合为空,直接返回一个空树

if (StringUtils.isEmpty(id)) id = "id"; //如果被依赖字段名称为空则默认为id

if (StringUtils.isEmpty(parent)) parent = "parent"; //如果依赖字段为空则默认为parent

if (StringUtils.isEmpty(children)) children = "children"; //如果子节点集合属性名称为空则默认为children//初始化根节点集合, 支持 Set 和 List

Collectionroots;if (collection.getClass().isAssignableFrom(Set.class)) {

roots= new HashSet<>();

}else{

roots= new ArrayList<>();

}//获取 id 字段, 从当前对象或其父类

Field idField;try{

idField=clazz.getDeclaredField(id);

}catch(NoSuchFieldException e1) {

idField=clazz.getSuperclass().getDeclaredField(id);

}//获取 parentId 字段, 从当前对象或其父类

Field parentField;try{

parentField=clazz.getDeclaredField(parent);

}catch(NoSuchFieldException e1) {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值