深拷贝
对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容称为深拷贝。
浅拷贝
目前常用的属性拷贝工具,包括Apache的BeanUtils、Spring的BeanUtils
实体类中重载 clone()方法
对象中的基本类型是不需要考虑深拷贝的,深拷贝只针对对象类型或者对象集合对象。对于这种,可以分别重载对象中的clone方式
@Override
public UserVO clone() {
try {
UserVO userVO = (UserVO) super.clone();
return userVO;
} catch (CloneNotSupportedException e) {
System.out.println("exception happened");
}
return null;
}
JSON序列号
这种方式比较简单,就是对象转json字符串,再利用JSONObject转成对象,parseObject或者parseArray方法
Apache Commons Lang里面的SerializationUtils
这种方式有两点需要注意
- 类都实现Serializable接口
- 转换需要是同一种类,不通类之间无法转换,否则会报错