在对如何在 android 中传递对象引用进行一些研究时,我正在考虑以下问题。
假设我有一个带有 Long 作为键的 WeakHashmap。现在我将一个对象放入这个 WeakHashMap 并将其分配给键“new Long(1)”(假设我将保存对这个 Long 的引用)。
现在应用程序的另一部分创建了一个新的 Long(1),然后我将我的第一个 Long(用作键)设置为 null。
- WeakHashMap 中的对象会发生什么?
- 如果我将 Long 替换为具有 Long 成员的自己的 Class 并让它的 compare()-Method 返回 true,如果它与另一个相同类型的对象(我自己的类)在它的 Long 中具有相同的值。
- 假设在这两种情况下 WeakReference 都被清除了。如果我在清除第一个密钥之前使用第二个创建的密钥访问 WeakHasMap 会有所不同吗?