我试图将一个对象的引用从一个对象移动到另一个对象,从而在移动对象时删除对象的引用,并将引用添加到它被移动到的对象。
我会尽量用一些假课程来设置场景:Frog、Owner、Customer :D
所以我有一个拥有一系列青蛙的所有者,这些可以借给客户。一个客户只能引用一只青蛙。因此,当 Frog 被借出时,可以在 Customer 类中创建对该 Frog 的引用,并且可以从 Frogs 的所有者集合中删除 Frog。
我想知道的是我如何扭转这个动作。当我希望客户返回 Frog 时,我可以将引用 Frog 的 Customer 的实例变量设为 null,但是我不确定如何在不引用 Frog 的情况下将此 Frog 返回给所有者,例如:
public void returnFrog()
{
owner.returnFrog(frog);
frog = null;
}
一旦我使实例变量为空,已经返回给所有者的引用也将变为空。
我能想到的唯一方法是让客户拥有一个 Frog 的列表,然后简单地将 Frog 从列表中删除。这样引用永远不会设置为 null,但是有更好的方法吗?我坚信如果我只需要一个值,我就不应该使用 List 。:(
或者我无法四处移动对象,只跟踪 Frog 是否与客户相关联——如果是,则无法与任何其他客户相关联(这是我的解决方案 atm)。
希望我不会错过一些基本的东西。