class Player
{
private Location location;
public Location getLocation()
{
return location;
}
public void setLocation(Location location)
{
this.location = location;
}
}
...
class Location
{
int x,y,z;
public Location(int x, int y, int z)
{
this.x = x;
this.y = y;
this.z = z;
}
public Location(Location location)
{
this.x = location.x;
this.y = location.y;
this.z = location.z;
}
public void updateLocation(Location location) //the fix..
{
this.x = location.x;
this.y = location.y;
this.z = location.z;
}
}
Скажите .. вы делаете
Player p1 = new Player();
Player p2 = new Player();
p1.setLocation(p2.getLocation());
Теперь ошибка / проблема возникает, когда вы пытаетесь изменить местоположение других людей.Расположение обоих игроков меняется абсолютно одинаково, так как они оба теперь находятся в одном и том же месте.
Так что, конечно, это ниже будет работать очень хорошо.
p1.setLocation(new Location(p2.getLocation()));
, но проблема в том, что он всегда создаетновый объект .. когда я мог просто обновить существующий экземпляр ..?Как мне обновить существующий экземпляр по умолчанию, не создавая свои собственные методы, как я делал ниже, чтобы это исправить.
Мне пришлось исправить это, используя метод ниже (любой способ сделать это по умолчанию, не делая это ниже))
public void setLocation(Location location)
{
if (this.location == null)
this.location= new Location(location);
else
this.location.updateLocation(location);
}
Кто-нибудь знает какие-то хитрости, о которых я не знаю?Благодаря.