我想避免由于未删除的侦听器导致的类加载器泄漏。为了促进这一点,我相信对听众的弱或软提法会有所帮助。严格来说,我需要的唯一Collection方法是add()和iterator()。
是否存在使用弱或软参考的集合或列表的化石库。
任何建议都会受到赞赏,否则我会写自己的。
答案 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作为存储桶写了我自己的小事。