在Java中维护类中不断变化的数据副本

在Java中维护类中不断变化的数据副本,java,class,copy,composition,Java,Class,Copy,Composition,在Java中,我有一个数据存储类,它维护两个相同类型但可能不同值的数据版本。有没有更好的方法来表示复制字段?尝试使用合成BuildingMaterials copy=newbuildingmaterials()

Java
中,我有一个数据存储类,它维护两个相同类型但可能不同值的数据版本。有没有更好的方法来表示复制字段?尝试使用合成
BuildingMaterials copy=newbuildingmaterials()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;
}

在另一个类中维护副本