【发布时间】:2014-10-01 10:55:49
【问题描述】:
我有一个对象的实例 - 我怎样才能摆脱它?
想象一下:
item1 = new MyItem( 123, "Test Item", "I am a test item" );
item2 = item3 = item1;
item1 = null;
我创建了一个 MyItem 的实例,并在我的代码中到处使用它(因此在不同的脚本中有多个对它的引用)。但是现在我想说:这个项目已经不存在了!
如果我只将其中一个设置为 null,则该实例将继续存在,而其他引用仍指向它。
有没有办法一劳永逸地销毁实例,让所有引用都为空?
【问题讨论】:
-
为什么?你想达到什么目的?将不再引用的变量设置为 null 不会执行任何操作。
-
如果你认为你需要这个,那么你已经做错了。
-
我正在做的是:我有大量的项目和一个单例来访问项目列表。每当我的程序中的任何内容需要使用某个项目时,它都会从列表中获取一个引用。所有这些都来自外部数据库。如果一个项目得到更新,同步脚本会在单例上更改它,并且每个其他脚本都会自动知道它。但是:如果一个项目在数据库中被删除并且我在单例中将该项目设置为空,那么其他人都不会知道它。这就是为什么我想知道是否有一种简单的方法可以清除所有引用并让所有人都知道该项目已消失。
-
问题似乎是在“它从列表中获取引用” 之后,该引用被缓存(时间过长)。只是不要那样做。
-
每次需要时抓取项目而不是缓存它是否存在性能限制?