Кто-нибудь знает WeakReferenceCollection для удержания слушателей - PullRequest
2 голосов
/ 25 августа 2011

Я бы хотел избежать утечек в загрузчиках классов из-за удаленных слушателей. Чтобы облегчить это, я считаю, что слабые или мягкие ссылки на слушателей помогут. Строгое единственные методы Collection, которые мне нужны - это add () и iterator ().

Существуют ли какие-либо библиотеки foss с Set или List, которые используют Weak или Soft References.

Будем благодарны за любые предложения, в противном случае я напишу свои.

Ответы [ 3 ]

0 голосов
/ 25 августа 2011

Вы можете использовать WeakHashSet для этой цели. Просто используйте null для всех значений.

EDIT WeakHashMap для WeakHashSet и Boolean.TRUE для значений.

0 голосов
/ 25 августа 2011

Было тривиально написано моё, используя WeakHashMap в качестве корзины.

0 голосов
/ 25 августа 2011

Существует java.util.WeakHashMap. Я не уверен, параллельны ли они для List и Set в JDK, хотя написать WeakList с помощью WeakReferences должно быть довольно просто. Существует пример реализации WeakReferenceList .

Обратите внимание, что хранение слушателей в виде WeakReferences может быть опасным, так как многие люди кодируют слушателей как анонимные классы, которые легко могут быть недоступны и недоступны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...