2009-10-26 21 views
1

我需要實現List裝飾類,它在列表中有任何更改時通知已註冊的監聽器。我已從org.apache.commons.collections15分類AbstractListDecorator並覆蓋方法如add(),addAll(),remove(int),remove(E)等與我的通知。Java:列表<E>通知修飾符實現

但也有一些孔 - 默認AbstractListDecorator.iterator()通過列表迭代,並調用Iterator.remove()方法時,例如,無論是覆蓋的方法remove(int)remove(E)不叫。

裝飾這些東西是否有任何標準和安全措施?

謝謝。

+1

萬無一失的方法是直接實現'List'。 – 2009-10-26 03:30:29

+0

沒關係,它有'AbstractIteratorDecorator'。但仍然有很多工作,請一些優雅的解決方案,請:) – mschayna 2009-10-26 03:41:02

+0

行,從零開始列出。但我需要裝飾更多現有的List實現。 – mschayna 2009-10-26 03:42:32

回答

2

重寫iterator()和listIterator()方法,並提供一個裝飾的迭代器,每當調用remove()時都會通知您的偵聽器。

+0

謝謝。那是什麼'AbstractIteratorDecorator'和'AbstractListIteratorDecorator'。 – mschayna 2009-10-26 12:46:21