자바가 객체 참조와 함께 작동하는 방식을 제대로 이해하지 못한다고 생각합니다. 내가 생각으로 여기에 내가 뭔가를 실현 문제의 예 작동하지 않는 :자바 객체 참조 문제
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;
}
}
기능을 문자의 객체 돌리는 것이 (나는 비디오 게임을 개발하고 있어요). 모든 문자에는 최대 3 개의 개체가 있습니다. 주어진 인덱스를 사용하여 더 일반화하기 위해서는 해당 오브젝트를 unequip합니다. 그것을 위해, 나는 그것을 수정하기 위해 unequip하고 싶은 오브젝트를 복사합니다. 국가는 여기 중요하지 않습니다. 요점은, 내가 "ui = null"의 배정을 할 때 원래 객체가 null이 될 것이라고 생각했기 때문입니다. 객체를 UI에 할당하는 순간 둘 다 같은 참조이며 변경 사항이 동시에 두 가지 모두에 영향을 줄 것이라는 점을 두 가지 중 하나를 편집하십시오 ...
이 미스 테넌시를 도와 줄 수 있습니까? 감사!
두 참조 중 하나를 null로 지정하면 다른 참조는 여전히 유효합니다. 두 참조 중 하나에서 메소드를 호출하면 원래 오브젝트의 데이터가 변경됩니다 (둘 다 참조되는 것). –