我想我沒有正確理解java與對象引用一起工作的方式。在這裏,我已經意識到東西問題的例子是行不通的,因爲我想: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」的分配時,它被認爲原來的對象也是空的,因爲我認爲在將對象分配給ui的那一刻,兩者都是相同的參考,你可以編輯任何兩個變化將同時影響兩個...
有沒有人可以幫我解決這個錯誤?謝謝!
您只是將兩個引用中的一個置空,另一個仍然有效。在任何兩個引用上調用方法都會改變原始對象中的數據(這兩個引用都是)。 – 2013-03-10 00:21:36