分类
浅拷贝
仅仅复制值类型,及引用类型的对象地址,不复制引用的对象本身;
深拷贝
无论原型对象的成员变量是值类型还是引用类型,都将复制一份给克隆对象;
方式
手动
new 一个新对象,set值
Object的clone() 方法
需要实现Cloneable接口
通过对象序列化
把对象写到流里(序列化),再把对象从流中读出来(反序列化)
使用工具类BeanUtils
Spring BeanUtils(推荐)
Apache BeanUtils(加了很对校验及转换导致性能差,不推荐)
使用Spring的BeanUtils进行对象拷贝
User userSource = new User(1, "ziry", "12345"); ThirdUser userDest = new ThirdUser(); BeanUtils.copyProperties(userSource,userDest); System.out.println("userDest: "+userDest);
还有其他拷贝框架,比如:Dozer、ModelMapper等
注意:本文归作者所有,未经作者允许,不得转载