项目中有一块公用的数据被两个地方用到,之前只被一个地方用到时,没有问题,那很显然,问题就出现在第二个地方,第二个地方遍历这个list并且修改了其中的内容,后查了下相关的深浅拷贝的问题
浅拷贝:
1.Collections.cooy(新数组,原数组);
2.list.addAll(原数组)
这两个方法依然会指向原数组,所以不推荐
深拷贝:
实现Cloneable,重写clone(),直接用public 类型 clone(),
public Test clone(){
Test test= null;
try{
test= (Test ) super.clone();
}catch (CloneNotSupportedException e){
e.printStackTrace();
}
return test;
}
这样就不会修改到原数据实现对象的复制