任何人都知道WeakReferenceCollection来容纳监听器

时间:2011-08-25 02:54:45

标签: java collections

我想避免由于未删除的侦听器导致的类加载器泄漏。为了促进这一点,我相信对听众的弱或软提法会有所帮助。严格来说,我需要的唯一Collection方法是add()和iterator()。

是否存在使用弱或软参考的集合或列表的化石库。

任何建议都会受到赞赏,否则我会写自己的。

3 个答案:

答案 0 :(得分:0)

有一个java.util.WeakHashMap。我不确定JDK中的List和Set是否并行,尽管使用WeakReferences编写WeakList应该相当简单。有一个WeakReferenceList的示例实现。

请注意,将监听器存储为WeakReferences可能会很危险,因为许多人将监听器编码为匿名类,这些类很容易无法访问和gc-ed。

答案 1 :(得分:0)

您实际上可以将WeakHashSet用于此目的。只需对所有值使用null

修改的 WeakHashSet的WeakHashMap和值的Boolean.TRUE。

答案 2 :(得分:0)

使用WeakHashMap作为存储桶写了我自己的小事。