通过阅读任何类似的问题,我似乎都无法得到明确的答案,我正在尝试使用复制构造函数在 Java 中深度克隆一个对象,这是一个深度副本:
public class Tile{
Image sprite = null;
int x = 0;
int y = 0;
public Tile(Image setImage, int sX, int sY){
this.sprite = setImage;
this.x = sX;
this.y = sY;
}
public Tile(Tile copyTile){
this.sprite = copyTile.sprite;
this.x = copyTile.x;
this.y = copyTile.y;
}
public void setNewLocation(int sX, int sY){
this.x = sX;
this.y = sY;
}
}
然后当我创建我的瓦片地图时,我可以做这样的事情
List<Tile> tileList = new List<Tile>();
Tile masterGrassTile = new Tile(grassImage, 0,0);
tileList.set(0,new Tile(masterGrassTile));
tileList.set(1,new Tile(masterGrassTile));
tileList.get(0).setNewLocation(0,32);
tileList.get(1).setNewLocation(0,64);
如果我要在各自的位置渲染两个图块,那会起作用吗?或者是分配 tileList.get(1).setNewLocation(0,64); 像参考一样影响,并且它们都与最后一个分配具有相同的位置。