我认为我没有正确理解 java 处理对象引用的方式。这是我意识到某些事情没有像我想象的那样工作的问题示例:
public void UnequipObject(int index) {
UsableItem ui = null;
if(index == 0) ui = item1;
else if(index == 1) ui = item2;
else if(index == 2) ui = item3;
if(ui != null)
{
int itemId = ui.GetId();
State.Instance().AddItem(itemId, 1);
ui = null;
}
}
该功能 unequip 一个角色的对象(我正在开发一个视频游戏)。每个角色最多有三个对象。为了使其更通用,使用给定的索引,您取消装备该对象。为此,我在 ui 中复制了我想要取消装备以对其进行更改的对象。国家在这里并不重要。关键是,当我进行“ui = null”的赋值时,原来的对象也应该是null,因为我认为在你将对象分配给ui的那一刻,两者都是相同的引用,你可以编辑两者中的任何一个,更改将同时影响两者...
有人可以帮我解决这个误解吗?谢谢!