在Java中维护类中不断变化的数据副本
在在Java中维护类中不断变化的数据副本,java,class,copy,composition,Java,Class,Copy,Composition,在Java中,我有一个数据存储类,它维护两个相同类型但可能不同值的数据版本。有没有更好的方法来表示复制字段?尝试使用合成BuildingMaterials copy=newbuildingmaterials()
Java
中,我有一个数据存储类,它维护两个相同类型但可能不同值的数据版本。有没有更好的方法来表示复制字段?尝试使用合成BuildingMaterials copy=newbuildingmaterials()但这会转化为无限递归,因此会耗尽内存。hash表中使用了类BuildingMaterials
的对象,因此我需要快速访问普通字段及其副本,并将它们封装在一个类中
static class BuildingMaterials {
Date creationDate;
int bricks;
int sand;
// data copy
Date copy_creationDate;
int copy_bricks;
int copy_sand;
// BuildingMaterials copy = new BuildingMaterials(); // fails
}
创建两个具有相同密钥的哈希表,每个哈希表中分别包含数据及其副本并不是一个解决方案 一个解决方案是创建另一个名为CopiedBuildingMaterials的类,该类包含BuildingMaterials的两个实例:原始版本和复制版本
class CopiedBuildingMaterials{
BuildingMaterials original;
BuildingMaterials copied;
}
class BuildingMaterials {
Date creationDate;
int bricks;
int sand;
}
在另一个类中维护副本