Fight With Me!!!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

BeanUtils.copyProperties不能copy复杂对象List的解决方式

需要注意的就是把List拆分,遍历add,然后把list设置到返回对象中

复制代码
package test.test;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.BeanUtils;

import com.alibaba.fastjson.JSON;

import test.entity.Book;
import test.entity.Classs;
import test.entity.Student;
import test.entity.Teacher;

public class Test {
    public static void main(String[] args) {
        Classs c = new Classs();
        c.setClassName("班级1");

        List<Student> sl1 = new ArrayList<>();
        List<Book> bl1 = new ArrayList<>();
        Student s1 = new Student();
        Book b1 = new Book();
        b1.setName("傲慢与偏见");
        b1.setNumber(498);
        bl1.add(b1);
        s1.setBookList(bl1);
        s1.setAddress("龙华民治街道");
        s1.setClassName("班级1");
        s1.setName("小红");

        sl1.add(s1);
        c.setStuList(sl1);

        List<Teacher> tl1 = new ArrayList<>();
        Teacher t1 = new Teacher();
        t1.setName("张三");
        t1.setAddress("深圳南山");
        tl1.add(t1);
        c.setTeaList(tl1);

//      System.out.println(JSON.toJSON(c));


        test.entity2.Classs c2 = new test.entity2.Classs();

        BeanUtils.copyProperties(c, c2);

        List<test.entity2.Student> sl2 = new ArrayList<>();
        for (Student stu1 : sl1) {
            test.entity2.Student stu2 = new test.entity2.Student();
            BeanUtils.copyProperties(stu1, stu2);

            List<test.entity2.Book> bl2 = new ArrayList<>();
            for (Book bo1 : stu1.getBookList()) {
                test.entity2.Book b2 = new test.entity2.Book();
                BeanUtils.copyProperties(bo1, b2);

                bl2.add(b2);
            }
            stu2.setBookList(bl2);
            sl2.add(stu2);
        }
        c2.setStuList(sl2);

        List<test.entity2.Teacher> tl2 = new ArrayList<>();
        for (Teacher tea1 : tl1) {
            test.entity2.Teacher tea2 = new test.entity2.Teacher();

            BeanUtils.copyProperties(tea1, tea2);
            tl2.add(tea2);

        }
        c2.setTeaList(tl2);


        System.out.println(JSON.toJSON(c2));
    }
}
复制代码

 

posted on   nickTimer  阅读(22457)  评论(1编辑  收藏  举报

(评论功能已被禁用)
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示