面对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博客搜索:标题关键字。以获取最新全部资料 ❤