我有一个对象,当调用其构造函数时,使用传递给构造函数的参数中的数据填充其字段。
// the public constructor
public Looper(Voxel [][][] body, Seed[] seeds) {
在这个构造函数中,我想使用参数 body 中包含的值填充两个3D数组 this.body 和 this.body2
我需要一个深层副本,因为它们的字段body和body2将被区别对待然后进行比较。
我想出了一个关于body数组的迭代。由于我无法在我的机器上运行代码,因此我无法验证这是否是深层副本:
public Looper(Voxel [][][] body, Seed[] seeds) {
this.temperature = Config.StartTemp;
this.body = body;
for(int xxx=Config.ptvXLow-0; xxx < Config.ptvXHigh+0; xxx++) {
for(int yyy=Config.ptvXLow-0; yyy < Config.ptvXHigh+0; yyy++) {
for(int zzz=Config.ptvXLow-0; zzz < Config.ptvXHigh+0; zzz++) {
this.body2[xxx][yyy][zzz] = body[xxx][yyy][zzz];
}
}
}
这是实现字段深层副本的正确方法吗?
是否可以忽略数组由Voxel.class实例组成的事实?