//1.浅拷贝
//.add() 和 = :指向的是同一地址。
TestObject _testObject1 = TestObject();
//新建实体类对象:
TestObject _testObject2 = TestObject();
//给它赋值_testObject1
_testObject2 = _testObject1;
//_testObject2这个对象是新地址,但赋值后_testObject2对象中的引用类型变量指向的还是原来的_testObject1对象中的地址。
//场景:当有一个数据源集合和三个操作的集合
//数据源_dataList,_dataList中实体类DataBean()
List _list1 = [], _list2 = [], _list3 = [];
if(condition == 1){
_list1.add(_dataList);
}else if(condition == 2){
_list2.add(_dataList);
}else if(condition == 3){
_list3.add(_dataList);
}
//当操作并刷新_list1对象的数据时,_list2、_list3的数据也跟着改变。
//2.深拷贝
//从json数据取对象是深拷贝
//例如把对象json.decode(json.encode);String类型转换对象(对象中有多层其中包含引用类型,引用类型String只有一层,转换时hash地址会发生变化)
//或者:
for(int i = 0; i < _dataList.length;i++){
if(condition == 1){
_list1.add(DataBean.fromJson(list[i]));
}else if(condition == 2){
_list2.add(DataBean.fromJson(list[i]));
}else if(condition == 3){
_list3.add(DataBean.fromJson(list[i]));
}
}
01-12
1384

05-21
2040

09-24
1269

12-01