我需要实现列表装饰器类,该类在列表发生任何更改时通知注册的监听器。我从 org.apache.commons.collections15 继承了 AbstractListDecorator
并覆盖诸如 add()
、addAll()
、remove(int)
、remove(E)
等方法等等我的通知。
但是存在一些漏洞 - 例如,默认情况下迭代 List 时 AbstractListDecorator.iterator()
并调用 Iterator.remove()
方法,或者重写方法remove(int)
或 remove(E)
不会调用。
装饰此类元素有任何标准和安全做法吗?
谢谢。
最佳答案
重写 iterator() 和 listIterator() 方法,并提供一个修饰迭代器,每当调用 remove() 时都会通知您的监听器。
关于Java:带通知的 List<E> 装饰器实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1622933/