Мне нужно реализовать класс List decorator, который уведомляет зарегистрированных слушателей о любых изменениях в списке. Я выделил подклассы AbstractListDecorator
из org.apache.commons.collections15 и переопределил такие методы, как add()
, addAll()
, remove(int)
, remove(E)
и так далее, с помощью моего уведомления.
Но есть некоторые дыры - например, при переборе List по умолчанию AbstractListDecorator.iterator()
и вызове метода Iterator.remove()
, переопределенные методы remove(int)
или remove(E)
не вызывают.
Существует ли какая-либо стандартная и безопасная практика для украшения таких вещей?
Спасибо.