面对Java多个对象转来转去,是一件很麻烦的事情。因为很多对象的属性名不一样,比如A对象的属性名是name,B对象的属性名是nickName 面对这样的对象转换。很烦,下面记录了对象拷贝的方案。支持Json Obj、Json Array的拷贝形式。
public static ArchObjDataParentChildNode flatTreeNodeConvert(ArchObjInstanceFlatTreeNode data) {
ArchObjDataParentChildNode returnObj = new ArchObjDataParentChildNode();
returnObj.setArchObjId(data.getDefineId());
returnObj.setArchObjName(data.getDefineName());
if (!CollectionUtils.isEmpty(data.getChildren())) {
ArrayList<ArchObjDataParentChildNode> children = new ArrayList<>();
for (ArchObjInstanceFlatTreeNode aclass : data.getChildren()) {
children.add(flatTreeNodeConvert(aclass)); // 递归转换子对象
}
returnObj.setChildNodeList(children); // 设置转换后的子对象列表
}
return returnObj;
}
public static List<ArchObjDataParentChildNode> flatTreeNodeListConvert(List<ArchObjInstanceFlatTreeNode> sources, int i) {
ArrayList<ArchObjDataParentChildNode> targets = new ArrayList<>();
for (ArchObjInstanceFlatTreeNode source : sources) {
ArchObjDataParentChildNode target = new ArchObjDataParentChildNode();
target.setArchObjInstanceId(source.getId());
target.setArchObjInstanceName(source.getInstanceName());
target.setArchObjId(source.getDefineId());
target.setArchObjName(source.getDefineName());
target.setUniqueId(source.getId() + ":" + i);
if (!CollectionUtils.isEmpty(source.getChildren())) {
target.setChildNodeList((flatTreeNodeListConvert(source.getChildren(), i)));
}
targets.add(target); // 设置转换后的子对象列表
}
return targets;
}
特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取最新全部资料 ❤